2012-01-12 65 views
2

我是Git的新手,試圖弄清楚這一點。Git:合併遠程文件與本地文件?

我已經克隆了一個遠程倉庫,比如ssh:// repo到我的本地機器。克隆之後,我編輯了一些文件,在此期間遠程存儲庫也發生了變化。

如何使用遠程更新本地存儲庫,同時維護兩組更改?

回答

4

使用

git commit 

命令只需提交更改到本地倉庫。現在你永遠不會失去你的改變!然後從遠程存儲庫中使用新的更改

git pull 

命令。該命令會提取新的更改並將其與您的更改合併。通常沒有衝突。在這種情況下,您可以自由將您的更改推送到遠程存儲庫。否則,你需要解決所有衝突,將它們標記使用

git add 

命令(只使用從git的狀態輸出提示)解決,並承諾使用

git commit 

命令此合併。

+0

每次我使用git pull時,響應是「已經是最新的」,並且本地機器上的文件沒有對遠程代碼進行的更改。任何想法爲什麼? – kz3 2012-01-12 17:09:54

+1

@ htrk123在這種情況下可能發生這種情況:您移動到XXX分支,並且有人將其更改推送到YYY分支。 – 2012-01-12 17:15:17

+0

@ htrk123是否將這些更改提交到遠程存儲庫? – 2012-01-12 17:16:51

0

你可以使用命令'git pull'並且這個標誌合併衝突(如果有的話)。 如果有矛盾,化解它,應該做的git的承諾

2

「git pull」會將遠程更改遠程合併到本地副本中。如果要獨立維護更改,可以在更改之前將更改移至新分支。所以,如果您還沒有提交改變,你可以做這樣的事情:

> git stash #stash the changes 
> git branch dev_branch #create a new branch 
> git checkout dev_branch #move to the new branch 
> git stash apply #paste the changes into the new branch 
> git checkout master #switch back to the master branch 
> git pull #update the master branch 

在那你到底有代碼的一個版本中包含的更改(dev_branch)和一個遠程代碼相匹配(主)。你現在可以在你的dev_branch上工作,而不管遠程代碼發生什麼。 (當你知道git你會發現這是一個更「混帳」的工作方式 - 只需在你的master分支中工作,並做「git pull」來合併遠程更改是一種更「顛覆」的工作方式)。