所以我在我的 .gitignore 文件中添加了一个文件夹。
一旦我做了git status它告诉我
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/*
我怎样才能让它工作,这样我就可以在不删除这些文件的情况下切换分支?
如果我进行更改,会影响这些文件吗?换句话说,如果我之后回到这个分支,直到我最近的提交,一切都会完美吗?
我不想丢失这些文件,我只是不想跟踪它们。
似乎您希望忽略这些文件,但它们已经被提交。.gitignore 对已经在 repo 中的文件没有影响,因此需要使用 .gitignore 删除它们git rm --cached。这--cached将阻止它对您的工作副本产生任何影响,并且它只会在您下次提交时标记为已删除。从存储库中删除文件后,.gitignore 将阻止再次添加它们。
git rm --cached
--cached
但是您的 .gitignore 存在另一个问题,您过度使用通配符并导致它的匹配程度低于您的预期。相反,让我们更改 .gitignore 并尝试一下。
.bundle .DS_Store db/*.sqlite3 log/*.log tmp/ public/system/images/ public/system/avatars/