2017-10-11 63 views
0

我正在做一個例程,在每次合併之前執行。它將運行單元測試並檢查其他配置文件。僅供參考,它在節點中編碼。如何在合併之前獲取衝突文件列表?

最後,如果一切正常,它會檢查是否與develop有衝突,並且只輸出yesno給用戶。 Pull請求應該在gitlab上管理,而不是在本地分支上。所以不應該在當地分公司進行「真正的」合併。

是否有像git -conflitcs-with-this-branch這樣的git命令?還有一種從nodejs中檢索它的方法?

謝謝,

Stéphane。

回答

2

查找合併衝突的命令是git merge。運行git merge,可選地使用--no-commit並且可選地在分離的HEAD上。

如果存在衝突,則git merge以非零狀態退出。如果沒有衝突,則git merge以零狀態退出。如果使用--no-commit運行,Git在兩種情況下都不提交;如果沒有它,Git會在當前HEAD上進行合併提交。如果HEAD被分離,這個提交隻影響HEAD。

如果您使用了分離的HEAD,現在可以將HEAD重新附加到其原始分支或提交。

如果您使用--no-commit,則無論合併是成功還是失敗,都可以簡單地運行git merge --abort

因此,最簡單的命令序列是運行git merge --no-commit,保存退出狀態,然後運行git merge --abort

請注意,在所有情況下,Git都會在合併過程中使用索引和工作樹,因此您必須確保Git在整個期間內都是安全的。 (特別是索引和工作樹必須在過程開始時是「乾淨的」,如果沒有合併驅動程序,就會在最後清理乾淨。)

(How to從node.js獲得git merge的退出狀態,我不知道。)