gpt4 book ai didi

git - 如何使用 Git rebase 重新排序/merge 提交?

转载 作者:太空狗 更新时间:2023-10-29 13:06:17 27 4
gpt4 key购买 nike

在使用 rebase 几个小时后,repo 看起来仍然与我需要的不同:

我想完成以下任务:
[在我开始弄乱 rebase 之前,其中一些还可以 :( ]

  • 将顶部提交(“删除无关...”)移至分支关闭之前(“#226 的修复”正上方)。
  • merge “twist/main”分支中的两个提交。 “comma”和“Moved loaded...”应该是同一个提交,我根本不需要“comma”的提交信息。
  • 将新 merge 的“Move loaded”提交 merge 到“backup”分支,并删除“twist”。
  • 将“master”移至现在显示为“backup”的位置。
  • “remote/origins/master”标签是什么意思?

enter image description here

我知道这要求很多,但请包括实际的 GIT 命令。

我不介意自己阅读和尝试,但对结果与我的预期不符感到有点困惑,我真的不想不小心破坏任何提交。

最佳答案

首先,重新排序 backup 提交。

# Safety, should be a no-op if your gitk snapshot is accurate
git checkout backup

# Temporary branch
git branch backup-save backup

# Move top commit onto 'Fix for #226:
git rebase --onto origin/master HEAD^

# Go back to saved branch's parent (i.e. without the moved commit)
git reset --hard backup-save^

# Rebase onto the moved commit (HEAD@{1} is where HEAD was 1 step
# ago i.e. before the reset.)
git rebase HEAD@{1}

# Don't need the saved branch any more (although you might want
# to keep it for a bit just in case). This deletes it:
git branch -D backup-save

merge twist 上的两个提交,忽略最上面的提交消息。

git checkout twist

git reset --soft HEAD^

# Just re-save the commit message, alternatively to skip the
# editor step do this: git commit --amend -C HEAD
git commit --amend

twist分支 merge 到backup中,移除twist分支。

git checkout backup
git merge twist
git branch -d twist

移动 master。有多种花哨的方法,但这是最简单的。我假设您希望 master 指向已编辑的 backup 位置,而不是它原来所在的位置。

git checkout master
git reset --hard backup

remote/origins/master 是远程跟踪分支,它告诉您 master 分支在远程存储库 origin 中的分支指针在哪里是,或者更确切地说是您上次获取、推送或 pull 的时间。

关于git - 如何使用 Git rebase 重新排序/merge 提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2080443/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com