请求 git 始终丢弃特定文件的本地更改



有没有办法告诉 git 始终忽略并丢弃已提交的文件的本地更改?

我已经阅读了这些选项,但似乎都不是我想要的。

这种情况是需要存在一个特定的文件才能编译,但某些工具通常会在构建过程中对其进行毫无意义的更改(标记版本号或添加/删除无关紧要的空格(。 (它不是一个"生成的文件" - 它确实包含独特的重要内容。 它也只是被构建工具修改。 不幸的是,修复构建过程不是一种选择。

因此,它总是在本地修改,我总是必须记住在提交或拉取之前恢复它,否则我会遇到冲突或创建提交,其中包含那些同样毫无意义的不相关更改。 (例如,在签出另一个分支时,我总是会遇到冲突,部分原因是无意义的更改的不同实例以及每个分支中的有意更改。

我想要的是让 git 在上游更改时始终用上游副本覆盖本地文件(无论是否有本地更改(,然后继续这样做而无需再次切换它。

(我从不故意更改一个这样的文件。 我很少对另一个文件进行有意的更改,但是在这种情况下,我必须记住取消设置"丢弃本地"标志,然后再次设置它,我不在乎我是否忘记并且有意的更改丢失 - 这比签出失败要好。

您可以在.bash_profile中创建一个别名来处理各种操作,并执行一个额外的步骤来撤消正在讨论的配置文件可能发生的任何更改:

addcommpush() {
    git checkout -- path/to/your/config.file   # undo any changes to this file
    git add .
    git commit -m "$*"
    git push
}
alias acp=addcommpush

按如下方式运行以下命令:

acp Your commit message goes here

请注意,别名包含一个git checkout --步骤,该步骤将撤消对工作目录中的配置文件所做的任何更改。

最新更新