运行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
清除它们,但我想知道为什么文件没有被自动删除。
答案 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>
成功地从我正在跟踪的文件中删除了该文件夹。