git团队合作
好了现在全村的希望和全屯的希望可以共同开发一个项目了。
注意:1:-b test :表示克隆的是远程仓库的test分支代码
2:克隆的是test分支,那么git会在本地也自动帮你创建test分支
克隆结果:
全村的希望
新建d.txt ---add--->暂存区------commit----->本地库-------push------>远程库
命令如下:
$ git add . //添加当前目录所有改动到暂存区。 $ git commit -m 'add d.txt'//将暂存区的改动列表一次性提交到本地库,生成一个新的版本。 $ git pull https://gitee.com/zhuximing/test.git test:test //让本地库和远程库同步,这是非常好的习惯。 $ git push https://gitee.com/zhuximing/test.git test:test//将本地库的改动推到远程库。 |
注意:test:test,表示将本地库的test分支推到远程库的test分支
小提示:要在一台电脑上演示2个用户操作的效果,需要改下git本地配置文件(不是全局配置文件)
$ vim .git/config
全屯的希望
修改a.txt ---add--->暂存区------commit----->本地库-------push------>远程库
$ git add . //添加当前目录所有改动到暂存区。 $ git commit -m 'change a.txt'//将暂存区的改动列表一次性提交到本地库,生成一个新的版本。 $ git pull https://gitee.com/zhuximing/test.git test:test //让本地库和远程库同步,这是非常好的习惯。 $ git push https://gitee.com/zhuximing/test.git test:test//将本地库的改动推到远程库。 |
如此往复,只要全村的希望和全屯的希望不去修改同一个文件,日子永远是美好的,按照上面的操作,开开心心把项目做完。
注意:每一次push记得先pull,要不然如果远程仓库的HEAD和你本地库的HEAD不一致的时候,即使没冲突也不让你提交的
当全村的希望和全屯的希望,只要不改同一个文件,每次pull的时候都是不会冲突的,但是如果他们俩修改同一个文件,那么在pull的时候必然冲突。
冲突演示之全村的希望操作:
$ git add . $ git commit -m '我全村的希望修改了a.txt' $ git pull //很好的习惯 $ git push https://gitee.com/zhuximing/test.git test:test |
冲突演示之全屯的希望操作:
$ git add . $ git commit -m '全屯的希望修改了a.txt' |
注意:全屯的希望在push之前要先pull,这时就会将远程代码合并到本地库,冲突马上发生
git status,看状态
既然无法合并,出现冲突,接下来怎么解决冲突呢?思路有三.
1:将全村的希望喊过来,两个人坐下来有话好好说,商量下怎么合并。
商量最终的结果
2:提交
$ git add . $ git commit -m '商量最终的结果' $ git push https://gitee.com/zhuximing/test.git test:test |
3:全村的希望回到座位,pull代码
$ git pull |
接下来,继续干活.
为了防止大面积的冲突,几条血的建议
1:写代码之前先 git status看有没有没 未提交的修改,然后git pull同步下代码.有冲突解决冲突,没冲突更好.
2:尽量小步快走,写一点push一下,别等写了n个月再push一次.
在你的工作空间中有很多文件是你不希望与人共享,或者提交的,这些文件你可加入忽略文件列表。
1:在.git文件夹的同级目录创建.gitignore文件 (如果远程仓库有该文件,你就不要多此一举去创建,直接pull下来是一样的)
2:提交到本地仓库,并推送到远程仓库
$ git add . $ git commit -m '添加忽略文件' $ git push yuanfang master:master
|
3:好了,现在你在本地新建db.properties文件你会发现git不追踪了,你修改该文件也不追踪