gpt4 book ai didi

git - 如何让git忽略某些文件冲突和差异?

转载 作者:太空狗 更新时间:2023-10-29 14:01:10 25 4
gpt4 key购买 nike

我们有一个自动生成的 javascript 文件,该文件在我们的 git 存储库中进行了跟踪。问题在于它在注释中包含一个(无用的)时间戳,这通常会为我们造成微不足道的 merge 冲突。我想避免发生这些冲突。

我以为我找到了a solution with .gitattributes and filter/smudge .我按以下方式设置它,以便在提交或 checkout 时从文件中删除此时间戳行:

.git 属性:

<the file>.js filter=tsfilter
<the file>.js smudge=tsfilter

.git/配置:

[filter "tsfilter"]
clean = perl -pe \"s/\\/\\/.*<the pattern>.*$//\"
smudge = perl -pe \"s/\\/\\/.*<the pattern>.*$//\"

虽然这似乎已经消除了 merge 冲突,但它引入了另一个烦恼,因为该文件现在仍然处于不断修改的状态。也就是说,“状态”静止图像显示它已修改,因为本地(预过滤)副本包含时间戳行(但提交的文件不包含)。

有没有更好的方法来解决这个问题,既避免了 merge 冲突,又 stash 了对文件这一部分的本地更改?

最佳答案

我可能没有正确解释您的问题,但听起来您可以对相关文件使用 ourstheirs merge 策略。基于对 this question 的回答,您可以执行以下操作:

.git 属性:

file.js merge=ours

.git/配置:

[merge "ours"]
name = Keep my file
driver = true

这将始终保留您的文件版本。

theirs merge 只是稍微困难一些——您不能只是将驱动程序更改为 false,您需要定义一个脚本来保留它们的更改。上面链接的问题更详细地涵盖了他们的策略。

关于git - 如何让git忽略某些文件冲突和差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13426032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com