为了账号安全,请及时绑定邮箱和手机立即绑定

.gitignore和“以下未跟踪的工作树文件将被结帐覆盖”

.gitignore和“以下未跟踪的工作树文件将被结帐覆盖”

Git
鸿蒙传说 2019-09-06 17:28:42
所以我在.gitignore文件中添加了一个文件夹。一旦我做了git status它告诉我# On branch latestnothing to commit (working directory clean)但是,当我尝试更改分支时,我得到以下内容:My-MacBook-Pro:webapp marcamillion$ git checkout developerror: 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.jpgPlease move or remove them before you can switch branches.Aborting这就是我的.gitignore文件的样子:.bundle.DS_Storedb/*.sqlite3log/*.logtmp/**/*public/system/images/*public/system/avatars/*我如何使这个工作,所以我可以切换分支而不删除这些文件?如果我进行更改,它会影响这些文件吗?换句话说,如果我之后回到这个分支,那么一切都是完美的,直到我最近的提交?我不想丢失那些文件,我只是不希望它们被跟踪。
查看完整描述

3 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

您似乎希望忽略这些文件,但它们已经被提交了。.gitignore对已存在于repo中的文件没有影响,因此需要将其删除git rm --cached。这--cached将阻止它对您的工作副本产生任何影响,它将在下次提交时标记为已删除。从repo中删除文件后,.gitignore将阻止再次添加它们。


但是你的.gitignore还有另外一个问题,你过度使用通配符并导致它匹配的次数少于预期。而是让我们改变.gitignore并试试这个。


.bundle

.DS_Store

db/*.sqlite3

log/*.log

tmp/

public/system/images/

public/system/avatars/


查看完整回答
反对 回复 2019-09-06
?
SMILET

TA贡献1796条经验 获得超4个赞

Git告诉你它想要创建文件(名为public/system/images/9/...etc),但是你已经在该目录中有了Git 没有跟踪的现有文件。也许其他人将这些文件添加到Git存储库中,这是您第一次切换到该分支?

这可能是您develop分支中的文件而不是当前分支中的原因。您可能需要询问您的合作者为什么会这样。

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

如果不使文件以某种方式消失,你就无法做到。你现在可以重命名publicmy_public或者什么。

如果我之后回到这个分支,那么一切都是完美的,直到我最近的提交?

如果您提交更改,Git不会丢失它们。如果你没有提交你的更改,那么Git会非常努力地不要覆盖你所做的工作。这就是Git在这里第一次警告你的事情(当你试图切换分支时)。


查看完整回答
反对 回复 2019-09-06
  • 3 回答
  • 0 关注
  • 941 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号