Git 功能分支审查:重写还是添加提交?
Git feature branch review : Rewrite or add commit?
假设某个功能分支具有以下历史记录:
- (4) 改变D使用B和A
- (3) 把C换成A
- (2) 添加 B
- (1) 加A
经审核,决定"B"不宜开发
你应该
1-rebase -i
,重写history/some代码,使feature分支在强推后变成:
- (7) 把D换成A
- (6) 把C换成A
- (5) 添加一个
或
2- 添加一个移除被拒绝功能的提交并推送,给出:
- (5) 去掉 B
- (4) 改变D使用B和A
- (3) 把C换成A
- (2) 添加 B
- (1) 加A
?
如果您更喜欢更清晰的历史记录或者它更容易 - 然后变基。否则还原也可以。
force push
在协作环境中是不可取的,因为它会影响你队友的本地存储库,所以我总是尽量避免它。
我的偏好通常是在提交历史中保留我们的决定的“历史”:),所以在这种情况下,选项 (2) 是我的偏好,特别是因为你可以直接 git revert
提交 # 2 (当然还要加一个从D中去掉).
假设某个功能分支具有以下历史记录:
- (4) 改变D使用B和A
- (3) 把C换成A
- (2) 添加 B
- (1) 加A
经审核,决定"B"不宜开发
你应该
1-rebase -i
,重写history/some代码,使feature分支在强推后变成:
- (7) 把D换成A
- (6) 把C换成A
- (5) 添加一个
或
2- 添加一个移除被拒绝功能的提交并推送,给出:
- (5) 去掉 B
- (4) 改变D使用B和A
- (3) 把C换成A
- (2) 添加 B
- (1) 加A
?
如果您更喜欢更清晰的历史记录或者它更容易 - 然后变基。否则还原也可以。
force push
在协作环境中是不可取的,因为它会影响你队友的本地存储库,所以我总是尽量避免它。
我的偏好通常是在提交历史中保留我们的决定的“历史”:),所以在这种情况下,选项 (2) 是我的偏好,特别是因为你可以直接 git revert
提交 # 2 (当然还要加一个从D中去掉).