有时我需要对我想要推送的本地树进行更改。这些可能只是对运行测试的脚本的攻击。虽然我在本地树中进行了此更改,但我可能会进行其他实际更改。
问题:
commit -a
现在,我提交黑客的提交说明,提醒我不要推它们。然后当我工作并积累真正的变化时,我将黑客重新加入到我的分支的HEAD中。
有没有更好的方法来管理这样的变化?
答案 0 :(得分:2)
git中没有这样的可能性来忽略文件中的某些更改,但会跟踪其他更改。 通常,应通过配置应用程序来解决此类问题。我的意思是,如果你有黑客,他们不应该像那样硬编码(不知道你使用什么语言,所以它是一些伪代码):
someMethod() {
doWork();
dirtyHack();
doSomeOtherWork();
}
您最好有一个配置文件来描述是否应该在当前配置中执行黑客攻击。所以代码可能会像这样修改:
someMethod() {
doWork();
if (readConfig().isDirtyHacksEnabled()) {
dirtyHack();
}
doSomeOtherWork();
}
此方法允许您在计算机和远程服务器上(或任何您想要的位置)拥有不同的配置文件。 并且应该使用以下命令在git中忽略此特定配置文件:
git update-index --skip-worktree <path_to_file>
因此,您可以跟踪git中的脚本文件更改,而只能在您的计算机上启用hacks。
不要将--skip-worktree
与--assume-unchanged
混淆。
当您设置最新标志时,您承诺git不会进行任何更改,因此git可以跳过检查文件的索引并节省一些时间,如果文件很大或文件系统很慢。
答案 1 :(得分:1)
使用--assume-unchanged
标记要暂时(暂时)忽略提交的文件:
git update-index --assume-unchanged <file>
然后您可以取消标记:
git update-index --no-assume-unchanged <file>
答案 2 :(得分:0)
使用:git stash存储它们 然后,您可以进行真正的更改,提交并在以后解除黑客更改(如果您需要)