git 重写历史(rebase 旧分支?)
git rewrite history (rebase old branch ?)
我正在尝试在 git 存储库中重写我的历史,到目前为止取得了一定的成功。
我尝试使用变基来删除每次提交中的大文件,我一定是做错了什么,因为我最终得到了这个奇怪的形状历史记录。
* 0758bb3 - (HEAD -> master, origin/master, origin/HEAD)
|\
| * 1ff4a51
| * f33555f
(... a bunch of commits in the right-hand-size branch only)
| * af4b7bf
| * a9bf8d0
| * f22fae8
* | 68bd9eb
* | 2e29133
|/
* fbef4bf
我想将其转换为:
* 0758bb3 - (HEAD -> master, origin/master, origin/HEAD)
* 1ff4a51
* f33555f
(...)
* af4b7bf
* a9bf8d0
* f22fae8
* 68bd9eb
* 2e29133
* fbef4bf
我想这样做的方式应该有点像
git checkout f22fae8
git rebase 68bd9eb
???
git push --force origin master
但是考虑到我现在对 "rebasing" 了解的很少,我无法掌握现有的信息来做到这一点。
如果这个问题已经在某处得到回答,我深表歉意,但我没有找到它(可能是因为我不知道应该使用什么词来描述这种情况:/)。
非常感谢任何可以帮助我的人:)
我不知道你在上面想做什么。如果你合并分支并且它看起来像上面那样,那么你已经有了你要找的东西。但是,如果您希望它使用 rebase 看起来不同,那么您将拥有完全不同的提交。如果您要变基,那么您基本上是在创建与以前存在的提交相同的新提交。那么提交历史看起来就不一样了。这是一个将上述结构转换为您正在寻找的结构的示例——但是有新的提交。
// First set up another branch where you can safely rebase
git checkout fbef4bf
git checkout -b rebase-point
// now switch to the place you want to rebase from:
git checkout master
git rebase rebase-point
// if satisfied, set the master branch to point to the 0758bb3 commit equivalent (remember we are rebasing so it won't be the same commit).
git reset --hard rebase-point
我正在尝试在 git 存储库中重写我的历史,到目前为止取得了一定的成功。 我尝试使用变基来删除每次提交中的大文件,我一定是做错了什么,因为我最终得到了这个奇怪的形状历史记录。
* 0758bb3 - (HEAD -> master, origin/master, origin/HEAD)
|\
| * 1ff4a51
| * f33555f
(... a bunch of commits in the right-hand-size branch only)
| * af4b7bf
| * a9bf8d0
| * f22fae8
* | 68bd9eb
* | 2e29133
|/
* fbef4bf
我想将其转换为:
* 0758bb3 - (HEAD -> master, origin/master, origin/HEAD)
* 1ff4a51
* f33555f
(...)
* af4b7bf
* a9bf8d0
* f22fae8
* 68bd9eb
* 2e29133
* fbef4bf
我想这样做的方式应该有点像
git checkout f22fae8
git rebase 68bd9eb
???
git push --force origin master
但是考虑到我现在对 "rebasing" 了解的很少,我无法掌握现有的信息来做到这一点。 如果这个问题已经在某处得到回答,我深表歉意,但我没有找到它(可能是因为我不知道应该使用什么词来描述这种情况:/)。 非常感谢任何可以帮助我的人:)
我不知道你在上面想做什么。如果你合并分支并且它看起来像上面那样,那么你已经有了你要找的东西。但是,如果您希望它使用 rebase 看起来不同,那么您将拥有完全不同的提交。如果您要变基,那么您基本上是在创建与以前存在的提交相同的新提交。那么提交历史看起来就不一样了。这是一个将上述结构转换为您正在寻找的结构的示例——但是有新的提交。
// First set up another branch where you can safely rebase
git checkout fbef4bf
git checkout -b rebase-point
// now switch to the place you want to rebase from:
git checkout master
git rebase rebase-point
// if satisfied, set the master branch to point to the 0758bb3 commit equivalent (remember we are rebasing so it won't be the same commit).
git reset --hard rebase-point