问题描述:
某个同事,不小心把编译文件夹(这个文件夹【unpackage】)提交到了远程仓库里。导致其他人提交的时候提示了冲突。因为每个人编译出来的文件都不一样。
然后我们在.gitignore文件设置了排除这个文件夹也没用。提交的时候,仍然会把这些文件夹下的文件被跟踪到,查了资料后,资料是这样说的:
【文件已经被提交到版本控制中:如果文件已经被提交到版本控制中(例如通过git add命令),那么.gitignore文件中的规则将不再生效。您需要先使用git rm命令将这些文件从版本控制中移除。】
git rm --cached <file>
这将从版本控制中删除文件,但会保留在您的工作目录中。
————————————————
解决方法:
执行以下代码:(想删除哪个文件或者文件夹就自己修改一下对应的名字)
从 Git 暂存区中移除文件夹
使用以下命令从 Git 的暂存区中移除这个文件夹:
git rm -r --cached unpackage
git rm -r --cached unpackage
: 从 Git 暂存区中递归移除unpackage
文件夹,但保留它在你的本地文件系统中。
执行完了之后,会发现git跟踪的文件的状态变了。
之前我没有理解【但会保留在您的工作目录中】这句话的意思。操作完了之后才明白。
下图就是已删除,但是状态不同了。
push成功后就会覆盖远程仓库里的代码。
执行成功这两行命令后,如果再次执行,就会提示:
fatal: pathspec 'unpackage' did not match any files
下图是push成功后的目录状态:(只有4个文件是本来就想提交的,另外的被删除了)