Jim*_*Jim 11 git git-commit git-tag git-squash
如果我提交A
了标记为 eg 的提交tag-A
,然后下一个提交B
标记为tag-B
; 如果我压缩这 2 个提交,标签会发生什么?两者都会被分配到被压扁的提交吗?
Mad*_*ist 10
标签不会移动,因为 rebase 会重写历史记录。原始提交将具有标签,因为标签不会移动。这是一张图片:
前:
(HEAD) B - tag-B
|
A - tag-A
|
X
Run Code Online (Sandbox Code Playgroud)
后:
B - tag-B
|
(HEAD) C A - tag-A
|/
X
Run Code Online (Sandbox Code Playgroud)
这里C
是壁球A
和B
。它开始了一个全新的历史,在其中A
并且B
不会参与。分支负责人将移到C
那里并从那里继续。
两者都会被分配给压缩的提交吗?
不。
每个标签都指向一个特定的提交,并且它永远不会自行离开该提交。每个标签指向的提交仍然有效,只是不在您的任何分支中。
压缩两个提交会创建一个单独的新提交,只有原始提交的内容。这个新提交不会有任何标签指向它。
您可以手动移动这两个标签以指向您的新提交:
git tag -f tag-A
git tag -f tag-B
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2422 次 |
最近记录: |