前提条件
在我的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 后存在未跟踪的文件。