git - .gitignore 和 "The following untracked working tree files would be overwritten by checkout"

标签 git git-merge gitignore

所以我在我的 .gitignore 文件中添加了一个文件夹。

一旦我执行了 git status 它就会告诉我

# On branch latest
nothing to commit (working directory clean)

但是,当我尝试更改分支时,我得到以下信息:

My-MacBook-Pro:webapp marcamillion$ git checkout develop
error: The following untracked working tree files would be overwritten by checkout:
    public/system/images/9/thumb/red-stripe.jpg
    public/system/images/9/original/red-stripe.jpg
    public/system/images/8/thumb/red-stripe-red.jpg
    public/system/images/8/original/red-stripe-red.jpg
    public/system/images/8/original/00-louis_c.k.-chewed_up-cover-2008.jpg
    public/system/images/7/thumb/red-stripe-dark.jpg
    public/system/images/7/original/red-stripe-dark.jpg
    public/system/images/7/original/DSC07833.JPG
    public/system/images/6/thumb/red-stripe-bw.jpg
    public/system/images/6/original/website-logo.png
    public/system/images/6/original/red-stripe-bw.jpg
    public/system/images/5/thumb/Guy_Waving_Jamaican_Flag.jpg
    public/system/images/5/original/logocompv-colored-squares-100px.png
    public/system/images/5/original/Guy_Waving_Jamaican_Flag.jpg
    public/system/images/4/thumb/DSC_0001.JPG
    public/system/images/4/original/logo.png
    public/system/images/4/original/DSC_0001.JPG
    public/system/images/4/original/2-up.jpg
    public/system/images/3/thumb/logo2.gif
    public/system/images/3/original/logo2.gif
    public/system/images/3/original/Guy_Waving_Jamaican_Flag.jpg
    public/system/images/3/original/11002000962.jpg
    public/system/images/2/thumb/Profile Pic.jpg
    public/system/images/2/original/Profile Pic.jpg
    public/system/images/2/original/02 Login Screen.jpg
    public/system/images/1/original/Argentina-2010-World-Cup.jpg
Please move or remove them before you can switch branches.
Aborting

这是我的 .gitignore 文件的样子:

.bundle
.DS_Store
db/*.sqlite3
log/*.log
tmp/**/*
public/system/images/*
public/system/avatars/*

我如何让它工作,以便我可以在不删除那些文件的情况下切换分支?

如果我进行更改,会影响那些文件吗?换句话说,如果我之后回到这个分支,直到我最近的提交,一切都是完美的吗?

我不想丢失这些文件,我只是不想让它们被跟踪。

最佳答案

警告:它会删除未跟踪的文件,因此对于所提出的问题,这不是一个很好的答案。

我也点击了这条消息。就我而言,我不想保留文件,所以这对我有用:

git 2.11 及更新版本

git clean  -d  -f .

较旧的 git

git clean  -d  -f ""

如果你还想删除被git忽略的文件,那么执行下面的命令。

注意!!!这很可能会破坏您的项目,只有在您 100% 知道自己在做什么时才使用

git 2.11 及更新版本

git clean  -d  -fx .

较旧的 git

git clean  -d  -fx ""

http://www.kernel.org/pub/software/scm/git/docs/git-clean.html

  • -x 表示忽略的文件以及 git 未知的文件也将被删除。

  • -d 表示除了未跟踪的文件外,还删除未跟踪的目录。

  • 需要
  • -f 来强制它运行。

关于git - .gitignore 和 "The following untracked working tree files would be overwritten by checkout",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4858047/

相关文章:

java - 提取GIT存储库信息

git - 比较 git branch 和 rebased branch

git - 如何从批处理文件将密码传递给 Git 命令

git - 最终会使用哪个版本的 git 文件 : LOCAL, BASE 或 REMOTE?

GitIgnore - 忽略 bin/但包括 bin/*.refresh

svn - 是否存在与大多数版本控制系统(git、svn、hg、cvs,也许是 bzr)兼容的版本控制 gui

解决 merge 冲突时的 git blame

git-merge - Git merge - 冲突标记丢失

macos - Git 忽略了 .idea 文件夹,但它不在 gitignore 中

git - 如何配置 git 以忽略本地某些文件?