我正在从zip快照构建一个回顾性项目历史.我已经从快照中构建了一个长分支提交序列.我现在已经在最后添加了一些"发现"快照,这些快照应该位于提交序列中间的不同位置.
我正在尝试使用它git rebase -i <startCommit>来重新排序git快照.我只需交换选择列表顺序.这应该只是重写提交对象的情况,但保持底层树相同(因为快照没有改变).
在这种情况下,看起来像rebase仍在尝试创建补丁并且有很多冲突,而不是进行简单的重新安排.对于这种特殊情况,是否有更合适的命令?我没有合并,只有一个分支.整个回购仍然非常本地和私人.
不要为 rebase 烦恼。建立一个新分支。如果 X 是 sha1 或要使用的树形提交,则:
git checkout X -- .
git add -A
git commit -C X
Run Code Online (Sandbox Code Playgroud)
按照您想要的时间顺序对所有提交重复此操作。
我们颠倒最后 5 次提交的顺序的示例:
git checkout -b temp old_branch~5
git checkout old_branch -- .
git add -A
git commit -C old_branch
git checkout old_branch~1 -- .
git add -A
git commit -C old_branch~1
git checkout old_branch~2 -- .
git add -A
git commit -C old_branch~2
git checkout old_branch~3 -- .
git add -A
git commit -C old_branch~3
git checkout old_branch~4 -- .
git add -A
git commit -C old_branch~4
git push . HEAD:old_branch -f
git checkout old_branch
git branch -d temp
git log -5 # to see the new history
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
1632 次 |
| 最近记录: |