我们可以说 git 还原将旧的先前提交合并到还原的提交之上吗?
Can we say that a git revert merges the old previous commits on top of the reverted commit?
我正在努力思考 git revert
。
我来自 Clearcase 背景,要撤消错误的提交,您可以:
- 在提交错误的文件之上检查旧版本的文件(Clearcase 上只有文件级提交)
- 删除作为提交的元素
- 在版本树中,将以前的版本合并到当前版本中,以创建与最新提交之前的版本相同的新版本。
现在在我看来,git 还原是自动等同于 (3) 中的手动工作。
我的问题是:我们可以说 git 还原将旧的先前提交合并到还原的提交之上吗?
不完全是。 git revert
将为您选择还原的每个提交创建一个新的提交对象,并且每个提交对象将分别与您选择还原的每个提交完全相反。
意思是,如果您 git revert C1
,那么 git 将创建 C1R
,它完全反转 C1 所做的所有更改。
不要忘记那些 ClearCase 选项是逐个文件的。
git revert
按提交工作(有点像 UCM activity),这意味着它将还原该提交中引用的所有文件。
要仅还原特定文件,您在“Reset or revert a specific file to a specific revision using Git?”中有其他选项。
简而言之
git revert
创建要撤消的提交的倒数。然后将新的变更集提交到存储库中。
请参阅 2.4 Git Basics - Undoing Things.
中的 取消修改已修改文件 部分
所以,不,你不能说:
Can we say that a git revert merges the old previous commits on top of
the reverted commit?
因为您可以还原存储库历史记录中的任何提交。
例子
假设您有以下历史记录:
C1 <-- C2 <-- C3 (HEAD)
这意味着,如果您想还原提交 C2
,则您不会提交 "old previous commit",这将是 C1
。因为那样你最终会得到
C1 <-- C2 <-- C3 <-- C1 (HEAD)
你不知道。你最终得到
C1 <-- C2 <-- C3 <-- C2' (HEAD)
其中 C2'
是 C2
的倒数,并且 C3
仍然是您历史的一部分。
插图
上面的解释有图解,taken from here.
我正在努力思考 git revert
。
我来自 Clearcase 背景,要撤消错误的提交,您可以:
- 在提交错误的文件之上检查旧版本的文件(Clearcase 上只有文件级提交)
- 删除作为提交的元素
- 在版本树中,将以前的版本合并到当前版本中,以创建与最新提交之前的版本相同的新版本。
现在在我看来,git 还原是自动等同于 (3) 中的手动工作。
我的问题是:我们可以说 git 还原将旧的先前提交合并到还原的提交之上吗?
不完全是。 git revert
将为您选择还原的每个提交创建一个新的提交对象,并且每个提交对象将分别与您选择还原的每个提交完全相反。
意思是,如果您 git revert C1
,那么 git 将创建 C1R
,它完全反转 C1 所做的所有更改。
不要忘记那些 ClearCase 选项是逐个文件的。
git revert
按提交工作(有点像 UCM activity),这意味着它将还原该提交中引用的所有文件。
要仅还原特定文件,您在“Reset or revert a specific file to a specific revision using Git?”中有其他选项。
简而言之
git revert
创建要撤消的提交的倒数。然后将新的变更集提交到存储库中。
请参阅 2.4 Git Basics - Undoing Things.
中的 取消修改已修改文件 部分所以,不,你不能说:
Can we say that a git revert merges the old previous commits on top of the reverted commit?
因为您可以还原存储库历史记录中的任何提交。
例子
假设您有以下历史记录:
C1 <-- C2 <-- C3 (HEAD)
这意味着,如果您想还原提交 C2
,则您不会提交 "old previous commit",这将是 C1
。因为那样你最终会得到
C1 <-- C2 <-- C3 <-- C1 (HEAD)
你不知道。你最终得到
C1 <-- C2 <-- C3 <-- C2' (HEAD)
其中 C2'
是 C2
的倒数,并且 C3
仍然是您历史的一部分。
插图
上面的解释有图解,taken from here.