Git pull merge fetch

时间:2013-10-02 11:31:23

标签: git merge fetch pull

我正在尝试用Git解决问题。我正在使用TortoiseGit。

基本上我检查了主分支,没有做任何更改,现在我想更新我的本地仓库。

据我所知,有一些命令:

获取:从远程分支下载信息

合并:将所述信息合并到本地分支

:合并上述操作

然而,我看到一些我不明白的事情:

  • 当我检查修改时,它向我显示我修改了很多文件(我没有修改过)。我不知何故认为这些变化与远程分支的变化有关
  • 当我进行提取时,它正确地获取远程信息,如果我然后进行合并,它会说“已经是最新的”,但是,如果我做了拉(据说两者都结合了)我得到一个错误,说我的合并将覆盖本地修改。这让我感到惊讶,因为我没有进行任何本地修改。这可能与前一点有关,但我没看到如何。

我是否误解了Git的基础知识,或者有人能向我解释这种行为吗?

1 个答案:

答案 0 :(得分:1)

可能有许多事情可以被视为改变。首先,实际上相当于git pull

git fetch
git merge FETCH_HEAD

现在,执行此操作后,您可能希望git diff FETCH_HEAD查看Git考虑的差异。您可能希望将FETCH_HEAD替换为更加用户友好的内容,例如origin/master

它可能是行尾,也可能只是文件的修改时间,无论哪种方式,如果你想摆脱你的“修改”,你可以做git reset --hard这将重置所有的工作树文件到他们在HEAD中的状态,并且可能你现在可以做拉。

或者,您可以直接重置为最新的git reset --hard FETCH_HEAD(或者例如来源/主人)。