【发布时间】:2020-06-02 21:17:57
【问题描述】:
我对 git 不是很熟悉,因为我只是以最基本的方式使用它。最近我遇到了这种奇怪的行为,这对我来说毫无意义,并对我的工作效率造成了巨大的干扰。对于某些分支,当我运行git pull 而不是像我期望的那样只从远程存储库中获取最新提交时,我得到了一个庞大的已修改/删除/添加文件列表以及大量未跟踪文件。我从中提取的分支是我们团队的主分支。我只是想让我的本地 master 副本保持同步。这些其他未跟踪的文件以及这些修改过的文件是什么?我没有碰任何其他文件。
让问题变得更糟的是我无法删除这些未跟踪的文件或任何东西。我试过`git clean -fx',它只删除了3-4个文件,但仍然留下数百个。此时我只想摆脱所有这些文件,删除分支,然后再次从远程拉取分支。
我尝试了以下操作:
git fetch --all
git reset --hard origin/<remote_branch_name>
但我收到一个错误,因为 Git 无法创建符号链接。我在 Windows 上使用 Git。
git pull 为什么要这样做,我该怎么办?
编辑:当我以管理员身份运行提示时,我终于能够运行 git reset 命令,但它仍然无法解释这种奇怪的 git pull 行为。
【问题讨论】:
-
如果在执行
git pull时文件被修改/删除/添加,那么其他人会将更改推送到远程存储库。因此,您正在将这些更改拉到您的本地存储库中。 -
是的,但这就是拉的重点吗?我想从远程分支获取最新的更改。
-
正确。那么,如果从远程存储库中提取文件,您为什么认为您会得到未跟踪的文件?
-
很容易将 as an admin 部分作为问题的根源。它很可能是问题的根源;这里还不够肯定。然而值得注意的是,
git pull只是意味着运行git fetch来获取新的提交,然后运行第二个 Git 命令来合并新的提交。 可能是第二个出错的命令。如果您想一劳永逸地解决它,最好单独运行每个命令,以便您可以深入了解相应的细节。 -
第二个命令是合并吗?