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

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

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

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

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

git

2个回答

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐