5.git 共享仓库-多人协作开发
2017-04-25 本文已影响136人
miner敏儿
模拟两人同时开发
1.创建一个文件夹user1 在里面放入一个项目
![](https://img.haomeiwen.com/i4017085/1ee605cead1c921a.png)
2.在项目当中初始化仓库,添加一些版本信息。 在user1中做操作 增删改查随你,不过最后要记的使用commit提交到本地
![](https://img.haomeiwen.com/i4017085/b80034c92b573b56.png)
![](https://img.haomeiwen.com/i4017085/9e18e8c2bc8290c6.png)
![](https://img.haomeiwen.com/i4017085/d9356906368dd776.png)
3.创建一个share文件夹。把share文件夹做成共享仓库
-Git clone --bare 用户1仓库地址
在share文件夹中做操作
共享仓库有一个特点:
1.看不到工作区。它负责共享,不能在里面修改任何。
并不是工作区不存在,它是把工作区隐藏起来。
2.以.git结尾
什么是裸仓库?
看不到工作区的仓库,称为裸仓库。
如何创建一个裸仓库?
Git clone --bare 仓库地址
![](https://img.haomeiwen.com/i4017085/884180fe92875bc0.png)
share文件夹中会增加一个以.git命名的文件夹
如果已经存在共享仓库.其它用户直接从共享仓库上面clone代码即可.从共享仓库当中clone得代码是有工作目录的
4.创建一个user2,从共享仓库当中clone代码
Git clone 共享仓库的地址。
在user2中做操作
![](https://img.haomeiwen.com/i4017085/f44bdc574afab6d8.png)
![](https://img.haomeiwen.com/i4017085/de903552decca488.png)
多人协作开发
- 1.当写完代码以后.先提交到本地
** -git add * **
** -git commit -m'message'** - 2.提交到本地之后,再去把代码提交到共享仓库中
** -git push 共享仓库地址 分支名称** - 3.其他用户,要去更新最新的代码
** -git pull 共享仓库的地址 分支名称**
5. 在user1当中添加内容并且提交到了本地仓库
![](https://img.haomeiwen.com/i4017085/235c215c2427a2b0.png)
6.提交到本地之后,再去把代码提交到共享仓库中
git push 共享仓库地址 分支名称
![](https://img.haomeiwen.com/i4017085/e08be704c5a2d54e.png)
7.user2,要去更新最新的代码,从共享仓库中获取代码
git pull 共享仓库的地址 分支名称
此时user2拿到的就是最新的文件 并且可以看到user1添加的代码
cat 文件名称
![](https://img.haomeiwen.com/i4017085/4b52f925b658055b.png)
并且能够看到uset1提交的日志
git log
冲突
1.什么情况下会产生冲突?
两个人同时修改了同一个文件的同一部分代码。
并且,两人都在本地做了提交。
如果一个用户,早一此提前到共享仓库当中。那么他没有任何问题
另外一个用户,提交代码代码时,要求先去更新pull一下代码
在pull过程当中会产生冲突。会报错,自己的代码提交不上
这个时候就需要先去解决冲突,解决冲突完毕后,提交到本地,再去提交到远程仓库,
user1修改1了文件并且上传到了共享仓库中
![](https://img.haomeiwen.com/i4017085/63ebd4d0b2c3f28a.png)
user2 修改文件内容
![](https://img.haomeiwen.com/i4017085/1045a53a820673e4.png)
2.如何解决冲突?
哪个文件冲突,会有提示。手动找到冲突的文件。
手动打开该文件
打开时,会看到如下代码:
user1添加了代码
<<<<<<< HEAD
user2添加abc
user2添加abc
user1又添加了一行代码
user2也添加了一行代码
=======
user1删除了代码
>>>>>>> 0f68f3c80b9544765127f641a8f064f9b37f8c52
<<<<<HEAD
是自己写的代码
======
别人写的代码
>>>>>>>>>>>>>>0f68f3c80b954
--------------------------------解决冲突----------------------------------------------------------------
手动把<<<<< ==== HEAD 删除掉。保留自己想要的代码
之后,需要再提交到本地
然后,再去push到共享仓库当中。