Git:如何忽略一些文件来推/拉/合并更改

时间:2018-04-19 13:39:03

标签: git gitignore git-push git-pull

我在项目中使用git。该项目包含一个文件,其中包含特定于每个开发人员的本地计算机的一些配置。 Git已经有了这个文件的版本。 我根据需要获得了该文件的更新副本,现在我不希望任何pull / push / checkoutmerge更改此文件的内容

我无法对该文件执行git remove并将其移至项目外部。所以this can not solve my problem

5 个答案:

答案 0 :(得分:1)

您可以将文件的路径添加到.gitignore

但是,似乎git 已经跟踪该文件。要解决此问题,请使用git reset fileName.txt取消暂存文件。之后,使用git rm --cached fileName从存储库中删除文件。

在此之后,您可以提交并推送更改,您将看到git不再跟踪该文件。

编辑我从评论中了解到,建议您在运行这些命令之前提交,推送和拉取所有更改。

答案 1 :(得分:-1)

尝试将文件路径添加到git pull alt <branch>文件。

有关详细信息,请查看

https://git-scm.com/docs/gitignore

https://www.atlassian.com/git/tutorials/saving-changes/gitignore

将文件路径添加到.gitignore文件后,如果修改,.gitignore的结果中不会显示添加的文件

答案 2 :(得分:-1)

如果我正确理解了这个问题,您希望将编辑过的文件保存在本地,并且不会干扰提取/推送到服务器。

要实现这一点,你不能将文件提交给git(或者它会被推送),但是在工作树中更改它将不允许合并(因为它已经被跟踪并且可能出现合并冲突)。 / p>

问题可以通过提交正常的所有文件来解决,除了编辑的文件,在获取之前stash文件并在其后弹出存储。

答案 3 :(得分:-2)

我认为你在寻找:

git merge --abort

如果您要忽略该文件,则应将其放在gitignore文件中

答案 4 :(得分:-2)

严格来说,这不是问题的直接答案;但是,这是实现这一目标的正确方法。

假设您的项目有一个设置脚本setup.sh

setup.sh

中添加此内容
confdir=/etc/projectname
cp settings.conf $confdir/settings.conf

这样,设置文件在外面回购,您可以将其修改为您心中的内容,而无需担心git跟踪更改。

如果要修改项目附带的settings.conf,即默认设置,只需提交回购邮件中的原始文件。

enter image description here