GIT並行提交和多人提交總結

2021-09-28 15:50:29 字數 1459 閱讀 7622

1、基於同乙個parent的兩筆並行提交

此時可以分別提交並且review,如果其中一筆已經review過了並且入庫,那麼此時另外一筆提交需要執行rebase操作然後再 --amend提交。

2、如果是遞進的兩筆提交

遞進的並行提交,即c2和c3都是已經提交到gerrit上去review了。後面由於c2在review時被打回來,這個時候可以進行如下操作。

第一步本地倉庫在做好備份之後,在當前的模組中執行"repo sync . ",這個會把當前的git狀態和遠端倉庫最新的提交同步。接下來是需要在gerrit上把c2這筆patch通過cherry pick命令,把c2這筆提交同步到本地,然後做對應的review的修改,完了之後執行commit --amend以補丁方式提交**,然後重新通過push命令把這提**推送到gerrit上再次接受review。

第二步則是繼續cherry pick c3的**到本地,如果和c2的修改有衝突的地方,就需要手動解衝突,然後再提交動作。

cherry pick的地方如下:

3、多人操作同乙份**,如何解衝突。

比如兩個人同時在往伺服器提交**,首先需要在gerrit上接受review。此時這兩個人都是基於遠端倉庫最新的狀態提交的**,如下:

接下來,c3首先通過review,然後就subimt合入了遠端倉庫的分支中,這個時候就會出現如下的情況:

c2的這筆提交,依然是不能直接順利地入庫了。這裡也分兩種情況:

第一種情況是已知明確c2和c3沒有衝突,那麼在c2要入庫的時候,可以執行rebase操作,變基處理,直接新增到c3的後面去。

第二種情況是不明確c2和c3有沒有衝突,或者很大可能存在衝突,那麼就需要執行上面提到的cherry pick操作了。首先repo sync . 更新最新的遠端倉庫狀態,這個時候其實就會把c3更新下來,接著cherry pick c2這筆提交,存在衝突手動解衝突,然後再commit --amend提交,這樣指向關係就清晰了,如下:

這樣,在c2通過review之後,就可以順利入庫了!

Git 提交和常見操作

git pull rebase 可省略,修改 前先更新也可以提交前再更新 git add git commit m 備註資訊 git pull rebase 不可省略 git push origin head refs for remote branch 常見一共四個字段 檢視遠端分支 git br...

專案提交git

已經有了乙個正在開發的專案,現在我們要把他分享到git osc上面去。1.第一步,先在git osc上建立倉庫,拿到git osc倉庫的http連線 2.如果本地專案是非git專案,那先把它變成git專案 在intellij中 vcs import into version control crea...

Git 本地提交

1.本地增加檔案 git add filename 2.本地刪除檔案 git rm filename git rm r dirname 和rm 的區別是,如果使用rm刪除會將刪除該檔案的操作提交上去 直觀的來講,git rm 刪除過的檔案,執行 git commit m abc 提交時,會自動將刪除...