iT邦幫忙

5

git 排除衝突後的 commit 異動檔案數量問題

  • 分享至 

  • xImage

我們小團隊目前在試導入 git 進行專案版控,不過目前我有遇到一個問題。

目前開發是有個 Main Repo,會有一位 Project leader 負責審核程式碼與合併,

其他人則是 Fork Main Repo 後開發再推送合併請求。

現在有一個問題是,若要推送合併請求前,會先把 Main Repo 的最新進度下載下來,

先在個人 Repo 內合併看看,若沒有衝突才會到 gitea 上提出合併要求,

這樣 Project leader 就可以直接審核程式碼並進行合併處理。

若發生衝突,則會在個人 Repo 內排除衝突後並提交一個 commit 再推到個人 Repo 再推送合併請求。

但是這樣做的話,排除衝突後的那個 commit 會包含 Main repo 的更動檔案。

有時候我只是改 1~2 個檔案,並在試合併時排除掉一個檔案的衝突。

但是那個排除衝突的 commit 會包含目前 Main repo 上的數百個異動檔案,造成 Project leader 在審閱時的困擾。

請問應該要怎麼處理呢?

謝謝

看更多先前的討論...收起先前的討論...
好問題,追蹤等正解
天黑 iT邦研究生 5 級 ‧ 2021-12-23 09:39:31 檢舉
+1 追蹤
個人認為沒必要做這件事
[若要推送合併請求前,會先把 Main Repo 的最新進度下載下來]
畢竟推送上去leader還是要看多個請求是否互相衝突
rew87516 iT邦新手 4 級 ‧ 2021-12-23 10:21:40 檢舉
目前的作法是要求組員自行排除與 Main Repo 的衝突,不然所有衝突都叫 leader 處理的話,負載會過於集中。
若有先後順序的問題,則是後合併的人若發生衝突則再請該人員下載最新 Main Repo 進度進行衝突排除。
fillano iT邦超人 1 級 ‧ 2021-12-23 11:14:43 檢舉
「排除衝突的 commit 會包含目前 Main repo 上的數百個異動檔案」...為什麼會這麼多?
fillano iT邦超人 1 級 ‧ 2021-12-23 11:59:41 檢舉
https://stackoverflow.com/questions/16490873/how-to-avoid-git-conflicts-in-a-team 至少先排除不需要的衝突的發生...
rew87516 iT邦新手 4 級 ‧ 2021-12-23 11:59:45 檢舉
因為開發速度的關係,自己的 repo 落後 Main repo 太多,所以若合併 Main repo 的話該合併 commit 的異動檔案就會很多...
rew87516 iT邦新手 4 級 ‧ 2021-12-23 12:04:49 檢舉
而那些異動檔案是別的開發者修正的,不是我。但如果我要合併最新進度就會把那幾百個異動檔合併到我的 repo ,然後再提出合併要求
也就是說別人改動的檔案又會被重新要求合併,我覺得這樣很奇怪
不錯的解法:
https://gitbook.tw/chapters/github/syncing-a-fork
rew87516 iT邦新手 4 級 ‧ 2021-12-23 16:27:15 檢舉
我懂了,是合併方向的問題
一般來講都是把自己的 repo master 分支更新到與 main repo master 分支同進度,然後在把 dev 分支合併 master 進行衝突排除。
但這樣就會出現我所述的問題,所以應該改為 master 分支合併 dev 分支才對!
``` 不正確的作法
git branch // *dev
git merge master
```
```正確做法
git branch // *master
git merge dev
```
3Q 各位
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答