我是git的新手,我使用Visual Studio的git擴展。當我嘗試同步項目時,其他團隊成員有時會提交更改,我可以看到傳入的提交,但項目未同步,並且引發下面的錯誤。Visual Studio的Git擴展
libgit2引發了一個錯誤。類別= 21(MergeConflict)。 2 未提交的更改將被合併覆蓋
問題是我該如何合併衝突?在發生此錯誤後,沒有合併衝突的窗口,並且我還承諾完成所有更改。
我是git的新手,我使用Visual Studio的git擴展。當我嘗試同步項目時,其他團隊成員有時會提交更改,我可以看到傳入的提交,但項目未同步,並且引發下面的錯誤。Visual Studio的Git擴展
libgit2引發了一個錯誤。類別= 21(MergeConflict)。 2 未提交的更改將被合併覆蓋
問題是我該如何合併衝突?在發生此錯誤後,沒有合併衝突的窗口,並且我還承諾完成所有更改。
該消息是關於未提交的更改,而不是真正的合併衝突。學會不合並或做任何奇怪的git東西與未落實的變化。在操作之前提交您的更改或存儲它們。即使這樣的衝突沒有被標記,它可能不是你真正想做的事情。
在GE有一個選項可以顯示工作樹的變化(除非你在一個巨大的回購工作,並定期有數百個變化的文件),並習慣在瀏覽中查看工作樹。此外,「提交」按鈕顯示一個計數,當您煽動合併時,該計數應爲0。
如果你的工作中間想要同步(並且再次思考,並且有一個很好的理由,誠實的話),使用stash
,然後拉(或重新綁定),之後完成,取消你的工作。
真正的合併衝突最好使用可視化合並工具處理,您可以嘗試使用tortoisemerge或我最喜歡的sourcegear的diffmerge。與GE一起發貨的Kdiff3很適合環顧四周,但不擅長解決問題,除非您所需要的只是從字面上挑選候選人。 GE會讓你自動解決衝突。
較早的答案並非總是如此。即使您沒有任何未提交的更改,您也可以收到此消息。我的同事&我同時修復了一個錯誤,並致力於我們的本地回購,並且我更喜歡他。我從來沒有檢查過我的變化,但解開它&拉他的變化。同時,他「改變了」他的改變(沒有和我說話),然後讓我推動我的改變。我告訴他我已經拋棄了我的改變,所以他恢復了他的回覆(結束了兩次提交)。
當我去推動另一個改變(致力於我的本地回購,沒有未提交的改變)時,他推動了他的改變和重新迴歸,並且我得到了上面的信息。
解決方案非常簡單,我使用操作菜單打開命令提示符並在那裏發出git pull
。這工作正常,並創建了一個合併提交對我來說,他的逆轉和重新迴歸。
是的,他可以有(insert incomprehensible git-gibberish here
),但他沒有,所以吸它書呆子。它的工作原理,我們正在繼續。
git reset --hard,爲我工作(我遇到的問題可能是由於我在另一臺機器,VM上對同一分支的未提交更改造成的)。 – learnerplates
有時候,git pull
是不夠的......(如果你「已經是最新的。「)
可能需要在命令行完成合並:
在Visual Studio
(2015年,更新3對我來說)在Team Explorer
,Branches
,Actions
,Open In Command Prompt
,則:
git merge NameOfBranchBeingMergedFrom
然後關閉該窗口並從VS
中完成其餘的操作(合併衝突等)。選擇一個良好的工作流程練習以避免此問題。始終在功能分支上完成您的工作。然後swi當您準備合併時,主控分支會同步,然後一旦主控是最新的,合併您的功能分支。或者,如果您喜歡快進式風格的工作流程,則可以將您的功能分支與主設備重新綁定,然後進行合併。但基本上 - 正如在這個答案中所述。 – patthoyts