这里主要讲多人协作开发时候到底是怎么协作的,是一块比较重要的部分。
多人协作时,大家都会往master和dev分支上推送各自的修改。
下面是一个例子,写的比较细致,应该都可以 看懂。
补充:比如我们在learngit库中有一个文件test.txt
我们需要git add test.txt
git commit test.txt –m ‘commit test.txt’
最后我们使用命令 git push origin master
这时就会将我们修改的test.txt文件上传到远程库中,就是推送到自己的GitHub上了
注意一定先add 然后commit 最后在git push… 少一步都不可以。
一个电脑要如何去尝试多人合作的实战,首先先创建另外一个文件目录test,具体请仔细看下面操作
1、cd test 进入到test文件那文档操作(记得事先在和learngit文件的位置创建一个test文件用来模拟你的同事)
2、就会发现出现了这个 ~/test,说明已经进入test文件中
3、然后我们用命令git clone git@github.com:mangoyi/learngit.git
这样我们就可以clone一份learngit库到我们的test文件中,
4、cd learngit 用这个命令进入到master分支
PS:
这样便可以操作了也就是说在我们test文件里面的learngit也和远程库连接在了一起,我们就可以通过修改test.txt然后push到远程库中,但是注意我们现在的操作是在test 文件夹里面的leargit文件中,和test同一级目录里面还有一个我们learngit文件。
在这里我们要知道我们现在是在master分支,而我们模拟的是想在dev分支上开发,所以就必须远程创建origin的dev分支到本地,
一、于是我们用命令
git checkout –b dev origin/dev 会报错
解决方法:http://blog.csdn.net/weichuang_1/article/details/48437911
//我们来创建一个新的本地分支dev
git checkout –b dev
//重置它的起始点
git reset –hard origin/dev
// origin/dev 意味着origin索引的远程仓库有dev分支(也就是我们GitHub中对应的库里有我们的dev库)
/*也就是理解成如果远程仓库中没有origin/dev这个分支的话,
你只需要创建一个本地分支dev,然后将它推送到远程仓库
*/
git push –u origin dev
//这样本地的分支dev和原创跟中的分支origin/dev之间建立一个联系
到这里 一 的问题已经解决了。
二、现在我们在dev分支上创建一个文件hello.py
在hello.py上添加内容
print('helloworld') //由于本人手误所以hello.py里面多了一点内容,但是不影响我们这个例子(mistake)
PS:这里给大家补充一个: vi hello.py 命令
输入之后就可以修改hellp.py这个文件里面的内容了
修改完之后按Esc键
然后会在最左下角输入 :wq
这样就关闭现在这个页面出现之前的命令行了
我们将dev分支上
通过命令 git add hello.py
git commit –m ‘addtest/learngit/hello.py’
git push origindev //推送到远程库分支
(相当于一个小伙伴)另外一个test目录下的分支已经推送了他的提交。
--------------推送完在我的github上面可以看到dev分支的推送内容
(mistake说到的, print('helloworld') 下面多了几行,因为手误输进去的)
补充一下:此时你在的路径是
//返回返回上一级 命令cd .. (cd和后面的.. 之间有一个空格)
//在cd learngit 到达我们自己的仓库master分支。
三、
这个时候已经不是在模拟你的小伙伴了而是你自己,
你已经开始用自己的leargit库了,因为你的小伙伴已经推送到github它的提交了。
1、在这个库创建一个dev分支,并且分支里面添加hello.py文件,
这里因为手误在上面又添加了一些多余内容(mistake2),在下面的操作我们会看到。但是不影响案例
(本人刚从廖雪峰老师那里学习总结出来的,怕自己忘记,所以乘热打铁,记录下来,所以有些小误差)
2、在这里我们
git add hello.py
git commit –m ‘add utf-8’
git push origin dev //将本地仓库dev分支推到远程仓库的dev
PS:
发现推送失败:因为你的模拟推送(相当于你的小伙伴)的最新提交和你试图推送的提交有冲突,git提示我们,先用pit pull 把最新的提交从origin/dev抓下来,解决冲突在推送
3、我们使用命令git pull
PS:git pull也失败了,原因是没有指定本地dev分支与远程origin/dev分支的链接,根据提示设置dev和origin/dev链接
4、使用git branch –-set-upstream dev origin/dev 命令设置链接。
5、再使用git pull 命令成功。(但是合并有冲突,需要解决冲突在提交)
6、使用git status查看状态
在使用命令vi hello.py进行修改,解决冲突
使用vi hello.py 命令之后出现下图,
这里也就出现了我们的mistake2说到的写了一些多余的内容。
(print('hello world')是我自己想写进去的,下面都是多余的内容,手误打进去的)
PS:出现这个命令页面之后,我们进行合并,直接点到那个位置然后合成自己想要的就行了
7、合成之后,按ESC按钮,然后输入:wq就可以保存并且退回命令行了
8、 输入命令 git add hello.py
git commit –m ‘merge and fix hello.py’
git push origindev //推送分支到远程库
推送成功,再次刷新自己的GitHub页面,就可以看出自己的修改推送已经成功了,
也就是完成了你和你小伙伴的协作了,你用了一台电脑模拟成功了两个人的协作。
--最后感谢廖学峰老师的教程我是看了老师的教程总结出来的。
--最后附上廖学峰老师Git教程网址http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000