防止在Git中覆盖未跟踪的文件

Cur*_*arn 2 git

说我有两个分支,master并且b2.在git存储库所在的特定目录中,有许多文件没有被git跟踪,有些文件被git跟踪.我在分支机构做了一些工作b2,现在我试图切换回master使用git checkout master.

我收到一个错误说:

以下未跟踪的工作树文件将被checkout:queries.py覆盖

我有两个问题:

  1. 我没有收到其他未跟踪文件的此消息,为什么这个特定文件?

  2. 我希望这个文件保持其当前跨不同分支的状态(也就是说,我不想覆盖或删除它).我怎样才能做到这一点?

我查看了提到此错误的其他问题.答案建议使用git clean说它将删除未跟踪的文件,但我不想删除它.

Sto*_*ica 5

你想跟踪文件吗?(它应该由Git控制吗?)

如果不:

  1. 存储文件: git add queries.py; git stash
  2. 签出另一个分支
  3. 从分支中删除文件,将其添加到.gitignore并提交
  4. 从存储中恢复文件: git stash pop; git reset

如是:

  1. 将文件添加到Git
  2. 签出另一个分支
  3. 在某些时候,您可能会合并两个分支,然后您必须决定在提交合并时要保留的文件版本.

你可以选择任何一种方式,但你必须自己决定.在某些分支中跟踪文件而在其他分支中忽略是不正常的.无论是到处跟踪还是无处不在.