我喜欢对我的项目应用一些更改,以帮助我的偏心工作流程(例如,我进行一些项目结构更改,删除一些过多的日志记录行等),但我不希望更改出现在我的当我创建一个合并分支时的git历史。手动重写历史记录的努力对于我必须执行此操作的次数来说太多了。
有没有办法应用差异文件(例如从format-diff
生成),以便在磁盘上编辑文件,但历史记录和索引没有注意到差异?
我能想到的唯一黑客就是将{gid .diff
文件与patch
一起应用,并将文件添加到git update-index --assume-unchanged foo/bar
但是有更好的 - 更多" git& #34; - 方式?
答案 0 :(得分:-1)
手动重写历史记录的努力数量太多了 我必须这样做。
但这根本不是任何工作。只需要一点点纪律,这实际上可以是半自动化的。
在向最终结果中不应包含的额外调试添加更改时,我所做的是在执行交互式rebase时以非常清晰的方式标记提交消息,例如
pick fdbd12a Mininmal main.c
pick 21e3d6f hello world with arg support
pick a62ebac ========= DEBUG: print argc ========
pick 3160605 Use EXIT_SUCCESS
pick 0ec0ac6 constify message
(有关详细说明,请参阅this answer。)
要删除vi编辑器过滤器中的非最终提交
与"!grep -v ======="
并没有精神上的努力
需要 1 。所以你只需要有点自律,并以明显的方式标记提交消息。
使用这种方法,您可以继续处理一个分支,并在开发时包含所有调试/最终排除更改。顺便说一下,这个分支可以没有任何额外的麻烦。
1 排除提交可能会触发合并冲突,在这种情况下I recommend使用KDiff3来解决它们。