如何从 git 跟踪中删除文件? [复制]
Posted
技术标签:
【中文标题】如何从 git 跟踪中删除文件? [复制]【英文标题】:How to remove a file from being tracked by git? [duplicate] 【发布时间】:2016-02-07 12:02:20 【问题描述】:我有一个文件 config-dev.php 将用作开发版本配置。
现在,另一位开发人员想要在此文件中进行自己的更改。
当他提交时,这个文件被提交,我的 config-dev.php 被我同事的文件覆盖。
此文件在 .gitignore 中,但仍无法正常工作。
如何从 git index 中删除此文件,以便每个人都可以拥有自己的 config-dev.php?
我试过git rm --cached config-dev.php
,但还是不行。这个命令应该由所有同事执行吗?还是应该在 git rm 之后同步??
【问题讨论】:
这很奇怪。在完成git rm
之后,您有commit
和push
吗?此外,这是 this post 的副本,尽管没有明确说明您需要对 commit
和 push
进行更改。
也相关:Stop tracking and ignore changes to a file in Git 和 What's the easiest way to deal with project configuration files?
【参考方案1】:
从跟踪中删除文件:
git rm --cached config-dev.php && git commit -m "config-dev.php"
将其添加到.gitignore
echo config-dev.php >> .gitignore
git add .gitignore
git commit -m "adding config-dev.php to .gitignore"
发布这些更改
git push
在你同事的机器上获取新配置
git pull
完成
当您的其他开发人员因为config-dev.php
的更改而在pull
上出错时,她应该复制她的本地更改,然后在推送后重命名文件:
cp config-dev.php my-config-dev.php
git checkout config-dev.php
git pull
mv my-config-dev.php config-dev.php
【讨论】:
谢谢,这似乎有效! :)以上是关于如何从 git 跟踪中删除文件? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在不从磁盘中删除文件的情况下 git rm 文件? [复制]