模擬兩人同時開發
1.創建一個文件夾user1 在里面放入一個項目
image.png
2.在項目當中初始化倉庫,添加一些版本信息。 在user1中做操作 增刪改查隨你,不過最后要記的使用commit提交到本地
image.png
image.png
image.png
3.創建一個share文件夾。把share文件夾做成共享倉庫
-Git clone --bare 用戶1倉庫地址
在share文件夾中做操作
共享倉庫有一個特點:
1.看不到工作區。它負責共享,不能在里面修改任何。
并不是工作區不存在,它是把工作區隱藏起來。
2.以.git結尾
什么是裸倉庫?
看不到工作區的倉庫,稱為裸倉庫。
如何創建一個裸倉庫?
Git clone --bare 倉庫地址
image.png
share文件夾中會增加一個以.git命名的文件夾
如果已經存在共享倉庫.其它用戶直接從共享倉庫上面clone代碼即可.從共享倉庫當中clone得代碼是有工作目錄的
4.創建一個user2,從共享倉庫當中clone代碼
Git clone 共享倉庫的地址。
在user2中做操作
image.png
image.png
多人協作開發
- 1.當寫完代碼以后.先提交到本地
** -git add * **
** -git commit -m'message'** - 2.提交到本地之后,再去把代碼提交到共享倉庫中
** -git push 共享倉庫地址 分支名稱** - 3.其他用戶,要去更新最新的代碼
** -git pull 共享倉庫的地址 分支名稱**
5. 在user1當中添加內容并且提交到了本地倉庫
image.png
6.提交到本地之后,再去把代碼提交到共享倉庫中
git push 共享倉庫地址 分支名稱
image.png
7.user2,要去更新最新的代碼,從共享倉庫中獲取代碼
git pull 共享倉庫的地址 分支名稱
此時user2拿到的就是最新的文件 并且可以看到user1添加的代碼
cat 文件名稱
image.png
并且能夠看到uset1提交的日志
git log
沖突
1.什么情況下會產生沖突?
兩個人同時修改了同一個文件的同一部分代碼。
并且,兩人都在本地做了提交。
如果一個用戶,早一此提前到共享倉庫當中。那么他沒有任何問題
另外一個用戶,提交代碼代碼時,要求先去更新pull一下代碼
在pull過程當中會產生沖突。會報錯,自己的代碼提交不上
這個時候就需要先去解決沖突,解決沖突完畢后,提交到本地,再去提交到遠程倉庫,
user1修改1了文件并且上傳到了共享倉庫中
image.png
user2 修改文件內容
image.png
2.如何解決沖突?
哪個文件沖突,會有提示。手動找到沖突的文件。
手動打開該文件
打開時,會看到如下代碼:
user1添加了代碼
<<<<<<< HEAD
user2添加abc
user2添加abc
user1又添加了一行代碼
user2也添加了一行代碼
=======
user1刪除了代碼
>>>>>>> 0f68f3c80b9544765127f641a8f064f9b37f8c52
<<<<<HEAD
是自己寫的代碼
======
別人寫的代碼
>>>>>>>>>>>>>>0f68f3c80b954
--------------------------------解決沖突----------------------------------------------------------------
手動把<<<<< ==== HEAD 刪除掉。保留自己想要的代碼
之后,需要再提交到本地
然后,再去push到共享倉庫當中。