git checkout分支有许多未跟踪的文件 前提条件问题

前提条件

在我的git repo中,我有两个分支:

  • 大师
  • 版本1.0

Master 分支位于 release-1.0 的前面,并且此回购使用Golang程序语言,并且我使用供应商dir,因此 master 中的供应商目录>有许多文件不在 release-1.0 分支中。

问题

问题是,当我从 master 分支签出 release-1.0 分支时,我在工作目录中得到许多未跟踪的文件,例如:

[root@Chine]# git status | head
# On branch release-1.0
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       vendor/github.com/GeertJohan/
#       vendor/github.com/PuerkitoBio/
#       vendor/github.com/appscode/
#       vendor/github.com/beorn7/
#       vendor/github.com/coreos/prometheus-operator/
#       vendor/github.com/daaku/

有什么方法可以自动删除未跟踪的文件进行结帐吗?我已经使用git checkout -h检查了一些参数,但没有发现有用的东西。

我的解决方法是:

# git rm -rf vendor
# git reset --hard origin/release-1.0

更新于:2019-11-14

比较一些文件后,我找出发生这种情况的原因:

问题在于,在 master 分支中,我已将vendor目录添加到我的gitignore列表中,而在 release-1.0 中却没有。

按照下面的评论,我尝试git clean -fd,它可以工作。但是我仍然不明白为什么结帐 release-1.0 后存在未跟踪的文件。

k13122603 回答:git checkout分支有许多未跟踪的文件 前提条件问题

我发现原因是在 master 分支中,我已将 vendor 目录添加到我的gitignore列表中,并在 release-1.0 中添加了不是。并且git clean -fd可以工作,但是不知道为什么在签出release-1.0后仍存在未跟踪的文件。

,

您可以使用 git checkout -f (或 git checkout --force )) 从here

中了解它

-f - 力 切换分支时,即使索引或工作树与HEAD不同,也要继续进行。这用于丢弃本地更改。 从索引中检查路径时,不要在未合并的条目上失败;相反,未合并的条目将被忽略。

本文链接:https://www.f2er.com/3169377.html

大家都在问