.gitignore 和“以下未跟踪的工作树文件将被检出覆盖"; [英] .gitignore and "The following untracked working tree files would be overwritten by checkout"
问题描述
所以我在我的 .gitignore 文件中添加了一个文件夹.
So I added a folder to my .gitignore file.
一旦我做了一个git status
,它就会告诉我
Once I do a git status
it tells me
# On branch latest
nothing to commit (working directory clean)
但是,当我尝试更改分支时,我得到以下信息:
However, when I try to change branches I get the following:
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 文件的样子:
This is what my .gitignore file looks like:
.bundle
.DS_Store
db/*.sqlite3
log/*.log
tmp/**/*
public/system/images/*
public/system/avatars/*
我如何让它工作,以便我可以在不删除这些文件的情况下切换分支?
How do I get this working so I can switch branches without deleting those files?
如果我进行更改,会影响那些文件吗?换句话说,如果我之后回到这个分支,一切都会像我最近的提交一样完美吗?
If I make a change, will it affect those files? In other words, if I came back to this branch afterwards would everything be perfect as up to my latest commit?
我不想丢失这些文件,我只是不想跟踪它们.
I don't want to lose those files, I just don't want them tracked.
推荐答案
您似乎希望忽略这些文件,但它们已被提交..gitignore 对存储库中已有的文件没有影响,因此需要使用 git rm --cached
删除它们.--cached
将防止它对您的工作副本产生任何影响,它只会在您下次提交时标记为已删除.从存储库中删除文件后,.gitignore 将阻止再次添加它们.
It seems like you want the files ignored but they have already been commited. .gitignore has no effect on files that are already in the repo so they need to be removed with git rm --cached
. The --cached
will prevent it from having any effect on your working copy and it will just mark as removed the next time you commit. After the files are removed from the repo then the .gitignore will prevent them from being added again.
但是您的 .gitignore 存在另一个问题,您过度使用通配符并导致它的匹配程度低于您的预期.相反,让我们更改 .gitignore 并尝试这个.
But you have another problem with your .gitignore, you are excessively using wildcards and its causing it to match less than you expect it to. Instead lets change the .gitignore and try this.
.bundle
.DS_Store
db/*.sqlite3
log/*.log
tmp/
public/system/images/
public/system/avatars/
这篇关于.gitignore 和“以下未跟踪的工作树文件将被检出覆盖";的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!