2

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

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

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

结果,它总是在本地修改,我总是必须记住在提交或拉取之前恢复它,否则我会遇到冲突或创建提交,其中包含相同的毫无意义的不相关更改。(例如,在检查另一个分支时,我总是会遇到冲突,部分原因是无意义更改的不同实例与每个分支中的有意更改一起被烘焙。)

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

(我从字面上从来没有对一个这样的文件进行有意更改。另一个我很少对另一个文件进行有意更改的文件,但我可以在这种情况下记住取消设置“丢弃本地”标志并在之后再次设置它,并且我不在乎我是否忘记并且有意的更改丢失了——这比结帐失败要好。)

4

1 回答 1

0

您可以在.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 --步骤,该步骤将撤消对工作目录中配置文件所做的任何更改。

于 2019-11-22T05:45:26.580 回答