如何从 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 之后,您有commitpush 吗?此外,这是 this post 的副本,尽管没有明确说明您需要对 commitpush 进行更改。 也相关: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跟踪文件中删除Redis文件dump.rdb

如何在不从磁盘中删除文件的情况下 git rm 文件? [复制]

如何从 git bash 屏幕中删除文件并从存储库中删除该文件? [复制]

如何从从 git 克隆的项目中删除版本跟踪?

如何忽略未跟踪文件中的 .DS_Store? [复制]

从 git 跟踪中删除文件夹