2016-08-05 143 views
0

我是新來的使用github與visual studio 2015插件,我卡住了。Visual Studio 2015與github插件問題

我在github上創建了一個新項目,並且能夠將軟件倉庫鏈接到我的visual studio項目。我能夠將一些代碼同步到軟件倉庫。 然後,我在網站上的github上添加了一個自述文件到我的項目中。第二天,我做了更多的代碼,並決定將它同步到軟件倉庫,但現在它說我有傳入提交(自述文件)。我點擊了傳入提交上的提取,但沒有任何反應。我點擊拉,它說我的更改將被合併覆蓋。

然後,我去了即將離任的提交(我剛剛做的),然後點擊push。它說:「你不能將分支主機推送到遠程源,因爲遠程倉庫的分支中有新的提交,推送這個分支會導致遠程倉庫中分支的非快速更新」

我點擊在幾件事情上,我仍然無法解決這個問題。我想用自述文件更新當前項目,然後更新我的倉庫。 (我對這個術語也很陌生)

回答

1

問題在於你已經在服務器上進行了修改,已經提交,並且修改了本地副本上的一些與它相沖突的相同文件, Git無法弄清楚哪些應該「贏」。

你必須看看每個有衝突的文件,瞭解衝突的位置,把它們整理出來,告訴Git你已經對文件進行了整理,然後進展。

因此Fetch將在本地從github下載所有更改,但不會更改您的工作副本。

Merge旨在拉下當前分支中的變化並將它們合併(這就是它遇到問題的原因)。

使用git的最佳建議(不管是否使用Visual Studio)):取和合並往往是。至少每天。

這個頁面看起來像一個合理的教程,如何做到這一點。它看起來類似於我的VS2015 git插件。

https://msdn.microsoft.com/en-us/library/dd286559.aspx

這頁上的命令行做的相當不錯教程:

https://easyengine.io/tutorials/git/git-resolve-merge-conflicts/

(但是,我不得不說:在Visual Studio工具,使得它更容易) 。

所以關鍵點是:

  • 看每個文件並解決衝突。
  • 你已經解決了文件
  • 一旦你完成了所有的文件讓Git,你需要「提交合並」

然後你在提交你的本地修改的地方是並將它們推送到服務器。第二技巧:我知道大多數人在Visual Studio中使用git的時候也廣泛地使用命令行客戶端,並且通常還有一個額外的gui客戶端(例如Atlassian的Sourcetree)。我每天都用三個。

+0

我試圖使用微軟的解決方案。我點擊抓取,但它似乎從來沒有取得任何東西,也沒有說我需要解決衝突。然後我嘗試了easyengine.io並執行了grep -lr'<<<<<<<'。命令。它沒有給我任何東西。我使用的是MINGW64,當我進入項目目錄時,它會在目錄名旁邊顯示「MASTER」。 – Hyperian

+0

你可以做'git status'和'git branch -a'併發布輸出嗎? – GregHNZ

+0

$ git status 在分支主數據庫上 您的分支和'起源/主數據'分開了,分別爲 並分別有1個和1個不同的提交。 (使用「混帳拉」合併遠程分支到你的) 變更,必須承諾: (使用「git的重置頭 ...」來unstage) 新文件:.gitattributes 新的文件:的.gitignore 未跟蹤文件: (使用 「混帳添加 ...」 在什麼將致力於包括) FalloutShelterSaveEditor.sln Hyperian @ Hyperian-PC MINGW64〜/文檔/ Visual Studio中2015 /項目/ FalloutShelterSaveEditor(主) – Hyperian