“git pull”命令和“svn update”命令类似吗?

30

我正在使用'git'按照这份文档检出chromium代码: http://code.google.com/p/chromium/wiki/UsingGit

文档中说“运行git pull命令或适当的命令来更新您的检出。”

但遇到的问题是当我本地工作目录有更改并运行'git pull'时,它会说某个文件无法更新(因为我在本地做了修改)。我通过删除我的更改'git checkout -- XXX.cpp'来强制使'git pull'工作。

是否有一种方法可以自动合并'git pull'(类似于svn update等效)?

谢谢。


2
"svn update" 的等效命令是 "git pull --rebase"。另外,请记住可以将 "git fetch" 和 "git merge" 这两个操作分开执行。 - Jakub Narębski
2个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
22
如果你想将本地更改合并到拉取请求中,你需要先将更改提交到本地目录。或者,您可以储藏(stash)您的更改,然后进行拉取,再重新应用储藏。

9
我认为你想做的是:
  1. 将所有更改提交到本地代码库
  2. 执行“git rebase”操作。
在我看来,这比“svn update”稍微好一些,因为它会先将您的本地工作副本更改为上次从远程拉取或重新基于时的状态,然后获取并应用新的远程更改,最后重新应用您本地提交的更改。如果您的更改与远程更改冲突,您需要解决它们并按照提示继续rebase操作。 这样更改集应该以正确的顺序应用。

2
谢谢。我可以先使用“git stash”,然后再使用“git rebase”,最后再使用“git apply stash”吗? - n179911
3
没问题。如果您有尚未准备好提交的更改,但想继续并获取远程存储库中的任何更改,那就是您要做的。 - user160223
1
git stash git rebase git stash apply -- 对我来说可行 - lowtech

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,