gpt4 book ai didi

git-svn dcommiting 单个 git commit

转载 作者:IT王子 更新时间:2023-10-29 01:07:27 25 4
gpt4 key购买 nike

给定多个未推送的 git 提交,是否有可能 git-svn dcommit 只有其中一个提交?

例如我已经提交了 foo、bar 和 baz,但现在我只想让 bar 最终出现在 svn 仓库中。这可能吗?

最佳答案

(以下假设您的工作在 master 上。)

首先,重新排序最后三个提交,使 bar 排在第一位。

git rebase -i HEAD~3

编辑器会 pop 类似这样的内容:

pick 498e4f4 foo
pick 71547ae bar
pick abf09c6 baz

# Rebase 4d3fe72..abf09c6 onto 4d3fe72
#
# ...

在 pop 的编辑器中重新排序,使 bar 排在第一位。

pick 71547ae bar
pick 498e4f4 foo
pick abf09c6 baz

# Rebase 4d3fe72..abf09c6 onto 4d3fe72
#
# ...

Git 将旋转几秒钟并打嗝确认:

Successfully rebased and updated refs/heads/master.

现在您可以暂时回滚到 bar 提交(HEAD~2 表示从 HEAD 返回两次提交)并提交它:

git checkout HEAD~2
git svn dcommit

如果你像我一样偏执,你可以先执行 git svn dcommit -n 以确保你只提交你想要的。

现在跳回master:

git checkout master

最后一点是 rebase 以便 master 与 svn 同步:

git svn rebase

我有点不明白为什么需要这样做,但我猜测在分离的 HEAD 状态下提交与它有关。

关于git-svn dcommiting 单个 git commit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1256189/

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