多使用者協同的本地模擬
先在本地模擬乙個能讓多人訪問的版本庫,用/path/to/user1/workspace和/path/to/user2/workspace代表不同使用者的工作環境,下面演示乙個共享的版本庫的搭建過程,以及兩使用者之間如何進行資料交換的。
(1)在/path/to/repos/shared.git中建立乙個共享的版本庫。
$
gitinit--
brae
/path/to/repos/shraed
.git
(2)使用者user1轉殖版本庫。
$ cd /path/to/user1/workspace
$ git clone file:///fath
/to/repos
/shared.git project
(3)設定user.name和user.email配置變數。
(4)使用者user1建立初始資料並提交。
$ echo hello. > readme
$ git add readme
$ git commit -m "initial commit."
(5)使用者user1推送到上游。
$ git push origin master
(6)使用者user2轉殖版本庫。
$ cd /path/to/user2/workspace
$ git clone file:///fath
/to/repos
/shared.git project
強制非快進式推進
若兩使用者
首先,使用者user1推送到」遠端」版本庫。使用者user1建立team/user1.txt檔案,然後將本地提交推送到伺服器上。
$ cd /path/to/user1/workspace/project/
$ mkdir team
$ echo "user1." > team/user1.txt
$ git add team
$ git commit -m "user1's profile."
$ git push
若使用者user2不知道user1所做的上述操作,仍然基於」遠端」版本庫舊資料同步而來的版本庫中進行修改,然後user2也推送。使用者user2建立建立team/user2.txt檔案,然後將本地提交推送到伺服器上,會怎樣呢?
$ cd /path/to/user2/workspace/project/
$ mkdir team
$ echo "user2." > team/user1.txt
$ git add team
$ git commit -m "user2's profile."
$ git push
這時推送失敗了,避免了使用者提交的相互覆蓋。git通過檢查推送操作是不是快進式推送。一般情況下,推送只允許快進式推送。所謂快進式推送,即運程版本庫相應分支的最新提交是本地版本庫最新提交的祖先提交。可用下面的命令實行強制推送,會強制重新整理伺服器中的版本。
$ git push -f
合併後推送
若使用者user1發現在推送過程中遇到了非快進式的推送錯誤,可以通過如下操作將本地版本庫的修改和遠端版本庫中的最新提交進行合併。
$ cd /path/to/user1/worspace/project/
$ git pull
$ git push
Git系列之(二)Git協議與工作協同
一 多使用者協同的本地模擬 git權威指南 15章 git協議與工作協同 15.2 step 1 建立本地版本庫伺服器檔案 git init bare path to repos shared.git step 2 建立本地使用者user1版本庫 git clonefile f 00share sh...
Git系列之(二)Git協議與工作協同
一 多使用者協同的本地模擬 git權威指南 15章 git協議與工作協同 15.2 step 1 建立本地版本庫伺服器檔案 git init bare path to repos shared.git step 2 建立本地使用者user1版本庫 git clonefile f 00share sh...
git協同工作
git的介紹就不多說了。這裡只是簡單的寫些入門的操作。我們既然不講什麼大道理,那麼我們就模擬乙個具體的操作場景出來。場景一 1,張三在做乙個專案。用git控制專案。2,李四花一周時間幫張三完成乙個功能。3,在這一周內,張三自己也在工作。4,一周後,李四把工作成果給張三。5,張三把李四的工作合併到自己...