0

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

基本上我检查了主分支并且没有进行任何更改,现在我想更新我的本地存储库。

据我了解,有一些命令:

Fetch:从远程分支下载信息

合并:将所说的信息合并到本地分支中

Pull:结合以上操作

但是,我看到一些我不明白的事情:

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

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

4

1 回答 1

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(或例如 origin/master)。

于 2013-10-02T17:42:05.460 回答