2016-09-29 27 views
1

我正在尋找一種方法,我可以自動添加所有新文件,但不會將衝突標記爲已解決。Git添加新文件,但不解決衝突

我已經設置了一些ant腳本來完成基本的Git功能,以幫助非開發人員處理日常操作。一直這樣做,並決定讓「提交」腳本自動添加新文件是安全的。很簡單,只需在提交之前腳本執行git add --all即可。

除了有意想不到的副作用,標記任何衝突解決,我絕對不想這樣做。衝突應該保持不變,以便用戶知道某些事情是錯誤的,並會問我如何處理它。

令人驚訝的是,似乎沒有選項可以使git add不標記已解決的衝突。我即將做一些嘗試,看看腳本需要尋找什麼來確定衝突解決方案正在進行並檢查。但是我以爲我會問人們是否有更簡單的方法來做到這一點。

回答

0

只有當你從服務器上拉出某些東西時纔會出現衝突 - 就像做一個底座或合併 - 如何改變或合併可以繼續不用修復衝突?處理這個問題的最好的地方是當你在你的本地分支中重新綁定或合併某些東西時。

1

衝突可能以兩種方式發生:在合併期間以及在重新綁定期間。假設如果其中任何一項正在進行中,我們不希望自動進行任何操作。

的解決方案,在腳本的形式:(從How to determine if Git merge is in processHow to know if there is a Git rebase in progress拉到一起)

#!/bin/bash 
git merge HEAD &> /dev/null 
result=$? 
if [ $result -ne 0 ] 
then 
    echo "Merge in progress." 
    echo "Please resolve any conflicts and complete the merge!" 
elif [ -d .git/rebase-merge -o -d .git/rebase-apply ] 
then 
    echo "Rebase in progress." 
    echo "Please resolve any conflicts and complete the rebase!" 
else 
    # Original commit script goes here. E.g.: 
    git add --all 
    git commit -m "auto commit" 
fi 


我也想鼓勵你考慮使這臨時解決方案。通過少量培訓,即使非開發人員也應該能夠處理大多數常規Git操作,尤其是在GUI前端(如SourceTree)的情況下。