为什么我在git pull(文件被移动到遥控器上)后得到未跟踪的文件

时间:2016-02-22 04:47:44

标签: git

运行git pull在我的本地副本中创建了一些未跟踪的文件。这些文件在远程控制器上移动,但是拉不会删除我工作目录中的文件。我花了不少时间研究这个问题,但找不到任何类似的案例。这是预期的行为吗,我错过了什么,或两者兼而有之?

背景

我做了一个补丁并将其发送给开源项目的开发者,但后来我想删除我的本地提交和git pull&#34;官方&#34;补丁一旦在遥控器上提交。所以我做了一堆&#34;东西&#34;重置为以前的官方HEAD。 &#34;东西&#34;意味着git checkout -- <file>git reset HEAD^以及其他我不记得的命令,因为我是git的新手并且我正在尝试研究最佳实践。

无论如何,在我终于&#34; undid&#34;我的提交并做了git pull,我得到了66次提交,包括我的补丁,一切看起来都很棒。但后来git status显示两个文件未跟踪。我做了gitk <untracked_file1>,我看到大约20次提交,文件被移动到另一个目录。该文件现在存在于新位置,但不是删除旧文件,而是显示为未跟踪。

我尝试通过following these instructions进行硬重置,但文件仍未跟踪。我可以git clean -f清除它们,但我想知道为什么文件没有被自动删除。

2 个答案:

答案 0 :(得分:5)

git pull不会删除未提交的更改,它不会处理您的工作目录,除非提交,否则不会触及任何更改或新文件。

要了解有关任何git repo的状态的更多信息,请阅读:
https://git-scm.com/book/en/v2/Getting-Started-Git-Basics

并且,要重置本地分支以匹配远程分支,而不是&#34;一堆东西&#34;,您可以使用此命令:
git fetch --all
git reset --hard origin/<remote_branch_name>

答案 1 :(得分:0)

Ahmed Kamal 的回答对我的类似问题没有任何改变。我使用 git clean -f <folder_name> 成功地从我正在跟踪的文件中删除了该文件夹。