1 GitHub 术语解释
1.1 Repository
简称Repo,可以理解为“仓库”,我们的项目就存放在仓库之中。也就是说,如果我们想要建立项目,就得先建立仓库;有多个项目,就建立多个仓库。
1.2 Issues
可以理解为“问题”,举一个简单的例子,如果我们开源一个项目,如果别人看了我们的项目,并且发现了bug,或者感觉那个地方有待改进,他就可以给我们提出Issue,等我们把Issues解决之后,就可以把这些Issues关闭;反之,我们也可以给他人提出Issue。
1.3 Star
可以理解为“点赞”,当我们感觉某一个项目做的比较好之后,就可以为这个项目点赞,而且我们点赞过的项目,都会保存到我们的Star之中,方便我们随时查看。在 GitHub 之中,如果一个项目的点星数能够超百,那么说明这个项目已经很不错了。
1.4 Fork
可以理解为“拉分支”,如果我们对某一个项目比较感兴趣,并且想在此基础之上开发新的功能,这时我们就可以Fork这个项目,这表示复制一个完成相同的项目到我们的 GitHub 账号之中,而且独立于原项目。之后,我们就可以在自己复制的项目中进行开发了。
1.5 Pull Request
可以理解为“提交请求”,此功能是建立在Fork之上的,如果我们Fork了一个项目,对其进行了修改,而且感觉修改的还不错,我们就可以对原项目的拥有者提出一个Pull请求,等其对我们的请求审核,并且通过审核之后,就可以把我们修改过的内容合并到原项目之中,这时我们就成了该项目的贡献者。
1.6 Merge
可以理解为“合并”,如果别人Fork了我们的项目,对其进行了修改,并且提出了Pull请求,这时我们就可以对这个Pull请求进行审核。如果这个Pull请求的内容满足我们的要求,并且跟我们原有的项目没有冲突的话,就可以将其合并到我们的项目之中。当然,是否进行合并,由我们决定。
1.7 Watch
可以理解为“观察”,如果我们Watch了一个项目,之后,如果这个项目有了任何更新,我们都会在第一时候收到该项目的更新通知。
1.8 Gist
如果我们没有项目可以开源或者只是单纯的想分享一些代码片段的话,我们就可以选择Gist。不过说心里话,如果不翻墙的话,Gist并不好用。
2 命令介绍
2.1 git status
在命令行窗口的光标处,输入git status命令,查看仓库的状态:
如上图所示,结果显示demo不是一个 Git 仓库,这是很正常的反应,因为我们还没有在计算机中声明demo为 Git 仓库,之前说demo是 Git 仓库只是我们口头上的说的,计算机当然不会认可。
2.2 git init
在命令行窗口的光标处,输入git init命令,初始化 Git 仓库:
如上图所示,结果显示已经初始化demo为一个空的 Git 仓库啦!在这里大家可以会有些疑问,因为我们在建立demo目录的同时也在里面新建了一个名为hit.txt的文件,怎么初始化仓库之后,demo目录就变成空的了呢?这个问题稍后解惑,我们重新输入git status命令检查一下仓库的状态:
如上图所示,在我们初始化仓库之后,demo目录已经成为一个 Git 仓库了,并且默认进入 Git 仓库的master分支,即主分支。在这里,我们需要注意的是Untracked fies提示,它表示demo仓库中有文件没有被追踪,并提示了具体没有被追踪的文件为hit.txt,还提示了我们可以使用git add命令操作这个文件,简直不要太好。
2.3 git add
在命令行窗口的光标处,输入git add hit.txt命令,将hit.txt文件添加到 Git 仓库:
如上图所示,如果没有报错,就说明命令已经执行啦!接下来,输入git status命令查看仓库状态:
如上图所示,已经显示Initial commit初始化提交了,同时已经没有Untracked files提示了,这说明文件hit.txt已经被添加到 Git 仓库了,而在我们没有进行git add操作之前,文件hit.txt并不被 Git 仓库认可,因此才会出现提示初始化仓库为空的现象。在这里,需要声明一点,那就是:git add命令并没有把文件提交到 Git 仓库,而是把文件添加到了「临时缓冲区」,这个命令有效防止了我们错误提交的可能性。
2.4 git commit
在命令行窗口的光标处,输入git commit -m "text commit"命令,将hit.txt文件提交到 Git 仓库:
如上图所示,我们成功将文件hit.txt提交到了 Git 仓库,其中commit表示提交,-m表示提交信息,提交信息写在双引号""内。接下来,再输入git status命令查看仓库状态:
如上图所示,结果显示nothing to commit, working tree clean,这表示已经没有内容可以提交了,即全部内容已经提交完毕。
2.5 git log
在命令行窗口的光标处,输入git log"命令,打印 Git 仓库提交日志:
如上图所示,显示了我们的提交记录,提交记录的内容包括Author提交作者、Date提交日期和提交信息。通过以上的操作,我们会发现一个现象,那就是:在每个git操作之后,我们基本都会输入git status命令,查看仓库状态。这也从侧面说明了git status命令使用的频率之高,也建议大家在操作 Git 仓库的时候多使用git status命令,这能帮助我们实时了解仓库的状态,显然非常有用。
2.6 git branch
在命令行窗口的光标处,输入git branch命令,查看 Git 仓库的分支情况:
如上图所示,显示了仓库demo中的分支情况,现在仅有一个master分支,其中master分支前的*号表示“当前所在的分支”,例如* master就意味着我们所在的位置为demo仓库的主分支。输入命令git branch a,再输入命令git branch,结果如下图所示:
如上图所示,我们创建了一个名为a的分支,并且当前的位置仍然为主分支。
2.7 git checkout
在命令行窗口的光标处,输入git checkout a命令,切换到a分支:
如上图所示,我们已经切换到a分支啦!也可以通过命令git branch查看分支情况:
在这里,我们还有一个更简单的方法来查看当前的分支,即通过观察上图中用红色框圈起来的部分。此外,我们也可以在创建分支的同时,直接切换到新分支,命令为git checkout -b,例如输入git checkout -b b命令:
如上图所示,我们在a分支下创建b分支(b为a的分支),并直接切换到b分支。
2.8 git merge
切换到master分支,然后输入git merge a命令,将a分支合并到master分支:
如上图所示,我们已经将a分支合并到主分支啦!此外,在这里需要注意一点,那就是:在合并分支的时候,要考虑到两个分支是否有冲突,如果有冲突,则不能直接合并,需要先解决冲突;反之,则可以直接合并。
2.9 git branch -d & git branch -D
在命令行窗口的光标处,输入git branch -d a命令,删除a分支:
如上图所示,我们已经将分支a删除啦!不过有的时候,通过git branch -d命令可以出现删除不了现象,例如分支a的代码没有合并到主分支等,这时如果我们一定要删除该分支,那么我们可以通过命令git branch -D进行强制删除。
2.10 git tag
在命令行窗口的光标处,输入git tag v1.0命令,为当前分支添加标签:
如上图所示,我们为当前所在的a分支添加了一个v1.0标签。通过命令git tag即可查看标签记录:
如上图所示,显示了我们添加标签的记录。通过命令git checkout v1.0即可切换到该标签下的代码状态:
如上图所示,我们已经成功切换到a分支的v1.0标签啦!
3 创建 GitHub 仓库的步骤及方法
注:上图中,一定要在readme等几个中选择一个。
4 配置Git
4.1 设置全局变量
在本地创建一个文件夹,进入文件夹后,鼠标右键打开git bush here
输入
git config --global user.name "zfxz1984"
git config --global user.email "zfxz1984@126.com"
4.2 登陆GitHub,创建SSHkey
然后输入这个,创建SSHkey
ssh-keygen -t rsa -C "zfxz@126.com"
然后连续点击三次回车键。
会在本地用户文件夹下生成.ssh的文件夹,里面包含id_rsa和id_rsa.pub两个文件
在我的电脑是admin,在你们的电脑就是你们的用户名。
然后打开文件夹
这个两个文件可不要删除了。
是有用的。
然后用记事本打开id_rsa.pub,全选,复制。
然后我们回到刚刚注册的GitHub账号里去,点击设置
然后点击SSH。
然后点击NEW SSHkey
然后把上一步复制的key粘贴进去,添加到GitHub账号设置中。
然后回到git,输入
ssh -T git@github.com
最后,输入yes!
好了完成了本地和GitHub的通信配置。
4.3 克隆仓库
复制GitHub上的仓库地址
在Git上输入这个,克隆仓库到本地
然后把我们一遍文章中生成的VScode的配置文件.vscode文件夹复制过去。
并用VScode打开刚刚克隆到本地的仓库。
4.4 在VScode上验证是否成功
GitHub —— vscode
看起来,我们似乎成功了,但是还有点不放心,我们再回到GitHub上看看。
我们刚刚提交的东西是不是真的已经提交上去了。