qq_43100675
thisis.wr
采纳率0%
2018-11-17 15:27 阅读 2.1k

git的忽略机制导致文件的丢失的问题

在第一个commit中还有文件file,然后写gitignore忽略file文件夹,清空缓存,再把其他全部添加到暂存区.

此时再修改file文件夹和其他文件,并提交.如果此时checkout到第一commit,file文件夹的修改不就没了吗?

再checkout回第二个commit,发现file文件夹没了,这算不算bug,因为file文件已经不被跟踪了, git也不会给出任何警告,怎样避免这样的情况的发生.也可能发生再分支间的切换.

新人,确实没有什么C币....

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • bingjianIT 写代码的林克 2018-12-15 14:24

    这个不能算作bug吧。对于你第一次commit是把file文件做了版本管理,你之后的commit修改了.gitignore文件,并清空缓存重新添加,这时候就是告诉Git,你不需要Git记住file文件之后的每一次更改,file文件的变化由你自己掌握。这时候你切换回第一次的commit,这时候,因为第一次commit对file文件由版本管理的记录,Git必须也有义务帮你把当前整个工作区的文件状态恢复为第一次commit的状态,这时候你之前对于file文件的修改就会被覆盖,从而让file文件丢失之前的更改。一般来说,如果要在之后的commit中修改.gitignore文件的配置,都会存在这个问题,这是没法避免的。

    点赞 1 评论 复制链接分享
  • qq_32409957 可爱的小书包 2018-11-19 04:33

    既然需要进行分支之间的切换,又需要文件保留,为什么又要把文件弄成忽略呢?

    点赞 评论 复制链接分享

相关推荐