2016-09-20 96 views
0

我將此項目設置爲全新的。 我創建了一個remote repository並在我的本地計算機上執行了此操作。使用遠程存儲庫時出現git pull錯誤

$ git init 
$ git remote add origin [email protected] 
$ git add . 
$ git commit 
$ git push -u origin master 
$ git branch -u origin/master 

然後我在remote repository的自述文件中寫了一些東西。當我在我的本地機器git checkout master上輸入我得到這個:

Already on 'master' Your branch is behind 'origin/master' by 2 commits, and can be fast forwarded. (use "git pull" to update your local branch)

但是,當我嘗試做$ git pull的建議我得到這個:

error: The following untracked working tree files would be overwritten by merge: README.md Please move or remove them before you can merge.

我怎樣的變化從originmaster然後?!

回答

1

就像Git所說的,你必須刪除未跟蹤的工作樹文件(在你的情況下只有一個叫做'README.md')。如果您想要保留更改,請提交它們,然後再進行拉取。

問題:你爲什麼不做git clone ...

編輯

當你做一個git pull,混帳做了git fetch接着是git merge。如果你沒有從遠程轉移,合併可以像快進一樣簡單。但如果你這樣做了,git需要將這些更改合併在一起。爲了確保你不會丟失任何工作,git會抱怨你的工作目錄中的文件會被合併所觸及。

要保持你的改變,你可以

  1. 將文件添加到您的索引(git add README.md),創建一個存儲(git stash),做一個合併(git merge origin/master),並彈出你藏(git stash pop)或
  2. 創建提交給你的更改(後面git commitgit add README.md),然後從遠程(git merge origin/master),似乎unreasnoable變化
+0

合併。如果代碼中有很多更改會怎麼樣?我是否必須手動刪除所有已更改的文件,然後用上游文件替換它們?我想將上游所做的更改包含在代碼中。我嘗試了'git fetch'然後'git merge origin',但是這給了我'起源 - 我們不能合併的東西'我沒有做一個克隆,因爲我創建存儲庫的文件夾不是空的。 – Stophface

+0

當你做一個'git pull'時,git做一個'git fetch',然後是一個'git merge'。合併可以像快進一樣簡單,如果你沒有從原點轉移,但如果你這樣做了,git需要將這些改變合併在一起。爲了確保你不會丟失任何工作,git會抱怨你的工作目錄中的文件會被合併所觸及。要保留更改,您可以1)將文件添加到索引,創建存儲,進行合併並彈出存儲或2)根據您的更改創建提交,然後合併來自遠程的更改。我會更新我的答案。 – yaba

+0

當我嘗試'git merge origin/master'時,我仍然得到相同的結果:'錯誤:以下未跟蹤的工作樹文件將被覆蓋合併: \t README.md 請在合併之前移動或移除它們。 – Stophface