前言

很多刚开始使用GitHub的小伙伴,免不了用Git来做版本管理,但是许多教程太过冗长,初学者看后总会一头雾水。

因此,本教程,一份粗糙的Git入门指南,将会介绍Git在GitHub中最常用的用法,免去那些不常用的命令,初学者看后即可上手,如果以后需要使用某种用法,再来学习也不迟。

Git安装与配置

Git是一款常用的版本管理软件,在企业生产中用得及其广泛。对于我们普通用户,用得最多的当然就是GitHub或者Gitee仓库的管理啦!

安装

Git的官方下载链接,选择您的操作系统,下载安装即可。

配置

安装完成后,打开Git Bash,在命令行中输入下列命令设置您GitHub账户和邮箱:

1
2
git config --global user.name "你的GitHub用户名"
git config --global user.email "你的GitHub注册邮箱"

然后可以输入下列命令查看是否设置成功:

1
2
git config user.name
git config user.email

下面介绍两个概念:

  • 本地仓库:存放在本地的文件夹;
  • 远程仓库:存放在GitHub上的仓库;

利用Git,可以顺利的将本地仓库的内容推送到远程仓库,或者从远程仓库拉取到本地,非常便捷。

在这个推送和拉取的过程中,本地仓库和远程仓库是如何互相识别的呢?这里就需要引进GitHub的ssh密钥。

输入如下命令,生成ssh密钥:

1
ssh-keygen -t rsa -C "你的GitHub注册邮箱"

输入后一直回车即可,最后会出现如下提示:

ssh

表示ssh密钥生成成功!

在C:\Users\“你的电脑用户名”\.ssh,找到生成的公钥id_rsa.pub,使用记事本打开,将内容全部复制;

打开您的GitHub主页,点击右上角头像,点击Settings,在打开的页面中点击左栏的SSH and GPG keys,如果你嫌麻烦,也可以点击这里,一键直达;

然后在SSH keys一栏中点击New SSH keys,Title随意填写,最重要的是将id_rsa.pub中的文本内容复制到Key中,完成后,点击Add SSH key,GitHub上的操作完成。

随后,输入如下命令

1
ssh git@github.com

检测秘钥是否设置成功,若出现successfully字样,表明设置成功,如果没有,请检查并且重复前述步骤。

现在,你的远程仓库和你的本地电脑已经建立了一对一的联系,这就好比门和钥匙的关系,没有任何其他钥匙能够打开你GitHub的大门,除非他得到了你的id_rsa.pub。

仓库克隆

在GitHub上找到一个满意的仓库,却懊恼怎么方便快捷地下载,有了Git,这一操作将会又方便,有快捷。

在你想作为本地仓库的文件夹中打开Git,比如你想把E盘中Projects文件夹作为本地仓库,你就点开该文件夹,点击右键,点开Git Bash;

然后,网页中打开你想要的仓库,点击仓库文件夹列表右上角的绿色图标,点击SSH,复制框中的内容,以下图为例:

code

其实也可选择HTTPS,但是由于众所周知的原因,大陆连接GitHub并不稳定,选择HTTPS在GitHub上传输文件,你会遇到各种各样奇怪的报错,而使用SSH却相当的丝滑,这里强烈推荐使用SSH;

复制完成后,回到本地,在命令行中中输入如下命令:

1
git clone git@github.com:shaoxiongji/federated-learning.git

Git即会为您将该远程仓库下载到本地!

仓库推送

GitHub是全世界最大的代码托管库,大量的开发者都在GitHub上开源自己的代码。下面就介绍一下如何将本地的代码推送到云端吧!

下面在我的GitHub账户中的LeetCode仓库为例。

首先,在GitHub上创建一个LeetCode空仓库,步骤如下:

  • 打开GitHub个人主页,点击右上角头像左边的的“+”号,然后点击New repository,来到下列界面:

    repo

  • 然后输入Repository name,也可以填写一下Description,可以选择该仓库Public还是Private,另外还可以添加README、.gitignore、license文件。这里我仓库名填写LeetCode,同时填了描述,选择Public,添加了一个README文件。然后点击Create repository,仓库创建完成,如下:

    LeetCode

然后,我们将该仓库克隆到本地。选择一个你想放置该仓库文件夹的目录,使用刚才叙述的方法,打开Git Bash,输入下列命令:

1
git clone git@github.com:tangkg/LeetCode.git

运行完成后,我们就可以看到远程仓库文件夹LeetCode出现在本地了,这就是与远程仓库建立连接的本地仓库。打开它,包含有README.md和.git两个文件,前者是将远程仓库拉取到本地的文件,而.git记录你的拉取和推送日志,不要在文件夹里删除和修改它。

此时,如果在本地仓库添加文件或者修改文件,如何将更新后的本地仓库推送到GitHub上的远程仓库呢?

我们现在本地仓库文件夹中创建一个Hello.md文件,如图所示,此时本地仓库包含了三个文件:

files

在当前目录下重新打开Git Bash,输入输入如下命令,即可将本地仓库推送到远程:

1
2
3
4
git init    #初始化工作台
git add . #添加当前列表所有文件入工作台
git commit -m "注释语句" #给本次推送写注释
git push #将本地文件从工作台推送到远程仓库

这几行命令如图:

push

执行完毕后,检查远程仓库,可发现本地文件已经顺利上传:

repo2

多重复几次这样的操作,熟练一下吧!以后你就可以将自己的代码文件托管在GitHub上啦!

仓库拉取

GitHub除了托管代码,还有一大用处就是协同开发,许多开发者可以一起为同一个仓库贡献代码,有时还会因此创建多个分支。

有时,其他开发者向该仓库提交了代码,或者你自己手动在远程仓库修改了文件,这个远程仓库因此而改变,但是你的本地仓库却依旧是修改前的版本,如果你此时修改本地仓库并向远程仓库推送的话,就很可能失败。

因此,如果远程仓库因为某种原因被修改,你需要先将本地仓库与远程仓库保持一致,再进行推送。这就是仓库的拉取(pull),它可以将远程的提交日志与本地的提交日志保持同步。

你可以在远程仓库中手动修改README.md文件(点击README.md预览页右侧的画笔即可更改),修改后,点击Commit changs完成修改,此时远程仓库的文件已经与本地文件不一致了。

输入如下命令,即可拉取:

1
git pull

remote

此时,检查你的本地仓库,你会发现已经有README.md的内容与远程仓库保持一致了。在这之后,你就可以放心的提交你的新文件了!

总结

本教程比较简略,以后可能会继续更新,不过这些这些都是Git的惯常用法,通过以上学习,你已经掌握了Git使用的最基本操作,能够在GitHub上自由的寻找并且克隆资源了;也能够将自己的代码上传到GitHub,进行版本管理了。

当然,仅仅熟悉这些指令还是不够的,以后你对Git会有更多样的需求,特别是关于分支的指令,你可以在遇到该问题时使用搜索引擎,也可以学习更加系统的教程,这里推荐两份学习资源: