在之前一个人使用github的过程中,我对github上面的小组多人协同开发仍然不是很理解,于是今天进行了相关的学习。

此次学习参考视频:一小时玩转github
参考博文:Git–将本地代码提交到服务器分支上

一、学习前的准备

在学习这个原理之前,首先得创建一个repository,然后用git命令git到本地的文件夹下。在git的时候,用SSH方式不需要每次都输入密码,但是需要注意的是你得有SSHkey,具体的SSHkey创建教程可以参考一小时玩转github这个视频。

用github进行小组协同开发
在创建完SSH之后,就在你需要的文件夹下面进行相关的操作了。
基础的操作命令如下:
克隆别人的代码:git clone 代码的链接
查看当前目录的状态:git status
将文件添加到暂存区:git add 文件名
暂存区的文件作为一条commit记录提交到当前分支上:git commit -m “对此次提交的描述”
将文件推到远端项目:git push
创建分支:git branch 分支名
切换分支:git checkout 分支名

下图很好的展现了板块间的联系:
用github进行小组协同开发

二、使用master单分支进行小组协同开发

当小组进行协同开发的时候,肯定会有人对项目进行不同的改动:添加文件、删除文件(这个比较少)、修改文件,当出现这三种情况的时候,使用git status就能很好的查看自己当前项目和远端的项目之间的差距。

当你对项目添加了新的文件时,git status会提醒你:
Untracked files:
(use “git add …” to include in what will be committed)
用github进行小组协同开发
当你修改了项目中的文件时,git status会提醒你:
Changes not staged for commit:
(use “git add …” to update what will be committed)
(use “git restore …” to discard changes in working directory)
用github进行小组协同开发
当你删除了项目中的文件时,git status会提醒你:
Changes not staged for commit:
(use “git add/rm …” to update what will be committed)
(use “git restore …” to discard changes in working directory)
用github进行小组协同开发
需要注意的是,如果别人对远端的项目进行了修改后,但你自己这边没有进行相应的更新时,你将你写的项目push到远端时就会报错,如下所示:
用github进行小组协同开发
因为此时你的这个项目在远端已经不是最新的了,所以此时应该先进行git pull命令将远端最新的项目拉到你的本地。对于远端项目存在的文件而你的项目中不存在的文件,git会自动将不存在的文件pull到你的项目中。而对于你和远端项目中都存在但不相同的文件,git会自动将两个文件进行合并,并报一个冲突(conflict)的错误,如下图所示:
用github进行小组协同开发
这个时候需要你进行对这个冲突(conflict)进行解决,可以采用和小组成员协商的方式对代码进行协商处理
用github进行小组协同开发
在解决了了冲突之后,就可以直接将本地的文件push到远端去,在这过程中git仍然会报错说你的冲突未解决,可以不用理会,因为你已经解决了冲突,只是git没法进行判断。

三、使用多分支进行小组协同开发

在学完单分支协同开发之后,我觉得在实际开发过程中还需要掌握多分支开发。
1.首先使用git checkout -b 分支名命令创建一个新的分支,然后将本地项目推到到远端分支上去,需要注意的是,在git push的时候git会报一个错,需要我们去运行他所给的命令:git push --set-upstream origin 分支名,如下图:运行即可。
git checkout -b 分支名
git status
git add .
git commit -m “提交描述”
git push
git push --set-upstream origin 你的分支名
用github进行小组协同开发
2.在运行完上面的命令之后,会发现在github上已经多了一条分支,运行git status查看你此时所在分支,如果你现在在刚才创建的新分支上,就可以直接运行git push就可以将刚才没有push上去的代码push到你的分支上去,因为你刚才已经commit过了,所以无需进行前面的步骤:
git status
git push
3.将你的代码推到远端之后,切换到master分支,然后git pull从服务器获取最新的代码:
git checkout master
git pull
4.再切换回自己的分支上,并检查是否与master分支有冲突:
git checkout 你的分支名
git rebase master
5.若有冲突则先解决冲突,直至没有冲突:
git add .
git rebase --continue(继续解决冲突)
重复执行后两步,直到所有冲突解决完成
6.将本地的代码推到远端master分支:
git push origin 你的分支名:master

至此,github的基础应用学习就差不多了

且行且珍惜

Franky 2020.7.28

相关文章: