github超入门(5 多人协作)

在日常github开发中我们肯定会遇到不止一个人来开发的情况比如当我们出现需要第二个人来加入的话我们应该怎么做呢。

我们以我之前的项目为例

github link

假入我是Jorge

第一步Jorge应该把整个项目clone 下来

https://github.com/z1811021/my_git_practice.git

接下来我们使用一个新名字Jorge

git config --add --local user.name "jorge"
git config --add --local user.email "[email protected]"

查看是否切换成功

 git config --local -l
github超入门(5 多人协作)_第1张图片
image.png

查看分支

git branch -v

我们如果需要用到其他分支的话需要创建并且切换我们现在就用master

接下来我们随便修改点东西

上传到暂存区并提交

git add -A
git commit -m "Jorge upload"
git push
github超入门(5 多人协作)_第2张图片
image.png

这样就会出现多种情况第一个人并不知道Jorge修改了文件,他去修改了不同的文件并上传或者修改了相同的文件并上传等等。我们来慢慢处理这些异常。

两个人修改了不同文件

我们随便修改点东西上传

不出所料会报错

github超入门(5 多人协作)_第3张图片
image.png

我们来分析下因为现在不是最新的所以要报错

我们先fetch下来保持我们是最新的

git fetch
github超入门(5 多人协作)_第4张图片
image.png

我们去查看发现果然Jorge这个人提交了没通知我们

git branch -av
image.png

接下来我们合并

git merge
image.png

我们就可以放心提交了

git push
github超入门(5 多人协作)_第5张图片
image.png

两个人修改了相同文件

比如Jorge修改了readmeChanged.md这个文件并上传


github超入门(5 多人协作)_第6张图片
image.png

但是Christopher并不知道他修改了readmeChanged.md他也修改了这个文件但是在不同位置同时提交

不出所料会报错


github超入门(5 多人协作)_第7张图片
image.png

我们首先fetch

git fetch

接下来merge

git merge

这里会出现两种情况:第一种会自动merge好,第二种会冲突

我们这里就冲突了

image.png

我们来人工修改它

因为Christopher是boss所以听他的

我们vi进去把Jorge的删了

然后git add git commit 再上传

 git commit -am"listen to Chistopher readme to fix conflit"
 git push
github超入门(5 多人协作)_第8张图片
image.png

某人修改了文件名

如果说Jorge变了文件名没给Christopher说,然后Christopher改了文件内容我们应该怎么处理呢

Jorge将readmeChange改为readmeChangeJorge并提交

Christopher修改了readmeChange的内容并提交

不出所料Christopher报错了

github超入门(5 多人协作)_第9张图片
image.png

我们只需要git pull再提交就可以轻松解决了

都修改了文件名

比如Jorge修改了小票.html to xiaopiao1.html 并提交

Christopher修改了小票.html to xiaopiao2.html 并提交

不出所料报错


image.png

我们git pull下看可以解决不

不行

image.png

git status看下情况

github超入门(5 多人协作)_第10张图片
image.png

那我们选择保留1不要2 我们根据status一行一行处理


github超入门(5 多人协作)_第11张图片
image.png

接下来我们再push 大功告成

你可能感兴趣的:(github超入门(5 多人协作))