猿问

.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/*

我如何使这个工作,所以我可以切换分支而不删除这些文件?


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


我不想丢失那些文件,我只是不希望它们被跟踪。


鸿蒙传说
浏览 943回答 3
3回答

小怪兽爱吃肉

您似乎希望忽略这些文件,但它们已经被提交了。.gitignore对已存在于repo中的文件没有影响,因此需要将其删除git rm --cached。这--cached将阻止它对您的工作副本产生任何影响,它将在下次提交时标记为已删除。从repo中删除文件后,.gitignore将阻止再次添加它们。但是你的.gitignore还有另外一个问题,你过度使用通配符并导致它匹配的次数少于预期。而是让我们改变.gitignore并试试这个。.bundle.DS_Storedb/*.sqlite3log/*.logtmp/public/system/images/public/system/avatars/

SMILET

Git告诉你它想要创建文件(名为public/system/images/9/...etc),但是你已经在该目录中有了Git 没有跟踪的现有文件。也许其他人将这些文件添加到Git存储库中,这是您第一次切换到该分支?这可能是您develop分支中的文件而不是当前分支中的原因。您可能需要询问您的合作者为什么会这样。如何让这个工作,所以我可以切换分支而不删除这些文件?如果不使文件以某种方式消失,你就无法做到。你现在可以重命名public为my_public或者什么。如果我之后回到这个分支,那么一切都是完美的,直到我最近的提交?如果您提交更改,Git不会丢失它们。如果你没有提交你的更改,那么Git会非常努力地不要覆盖你所做的工作。这就是Git在这里第一次警告你的事情(当你试图切换分支时)。
随时随地看视频慕课网APP
我要回答