2012-01-12 30 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”来合并远程更改是一种更“颠覆”的工作方式)。