【发布时间】:2021-10-06 06:21:50
【问题描述】:
Commit 1 包含 file1 和 file2
我在file2 中做了一些更改,并将其提交为commit2
但我希望commit2 包含file1 和file2,即使file1 没有变化。
或者
我想要一个包含/合并 commit1 和 commit2 的提交
有没有办法在 git 中做到这一点?
为什么我必须在提交中包含未修改的文件?
我的部署使用作为提交的一部分生成的哈希 id。所以在这种情况下,如果我提供commit2,那么它将只包含file2,因此我想创建一个包含commit1 和commit2 中的更改的提交。这可能是一种非常规的方式,但这是我的要求!
【问题讨论】:
-
如果您没有实际更改文件,为什么需要在提交中包含文件?这样做有什么用例?
-
只需将 2 个提交压缩为 1 个。该问题已在此处得到解答:stackoverflow.com/questions/5189560/…
-
@Vivek 您可以在
file1中添加一个空格,并在 Git 中禁用ignore whitespace。你将能够提交它。或者添加 cmets,反之亦然。如果您想在commit2中包含所有以前的更改,请使用squash,如其他人所述 -
“包含”是什么意思?我提交不包含文件。它包含对树的引用。树包含对 blob 的引用。文件 1 的内容位于提交引用的树中的 blob 中。所以提交已经“包含”文件 1。
-
虽然您可以 压缩提交,但在确切知道您要解决的问题之前,我真的很犹豫是否真的建议这样做。挤压可能是不必要的。与进行人为更改(例如空格/cmets)相同,只是为了强制它出现在提交中。
标签: git git-commit