0

环顾四周,找不到这个问题的答案!我是一个完整的 git n00b 并且非常感谢任何可以给我一些指示的人。

我最初在我的存储库中有一个很长的提交分支,我想更改分配给分支中先前提交(master~14)的消息

所以我做了

git checkout master~14
git commit --amend -m "added the new description for the commit bla bla bla"

不幸的是,现在我被置于分离头模式所以然后我有点惊慌并创建了一个新分支,这样我就不会失去对这个提交的引用

git branch detached

现在我有这样的情况,我在树的顶部有 master~14 在它自己的分支上,我想把它放回它在树中的位置,而不会引起任何冲突或覆盖任何东西

+        [detached] xxxxx
  *    + [master] xxxxx
  *    + [master^] xxxxx
  *    + [master~2] xxxxx
  *    + [master~3] xxxxx
  *    + [master~4] xxxxx
  *    + [master~5] xxxxx
  *    + [master~6] xxxxx
  *    + [master~7] xxxxx
  *    + [master~8] xxxxx
  *    + [master~9] xxxxx
  *    + [master~10] xxxxx
  *    + [master~11] xxxxx
  *    + [master~12] xxxxx
  *    + [master~13] xxxxx
  *    + [master~14] xxxxx

我还想(在解决此问题后)将我的提交从 master~14..master~5 分支为一棵新树,最后将 master~4..master 作为另一棵树。

4

2 回答 2

1

q1:

git checkout master

这将使您回到主提示

或使用

git reflog

或者git reflog show master

看看指针是如何移动的

但对整个事情的更好方法是

git rebase -i master~14

然后标记必要的提交以停止修改,那么你就不会处于分离的 HEAD 状态

q2:对我来说,如果正确的话,您希望 master~14..master~5 和 master~4..master 从 master~15 开始(为简单起见,我将创建命名分支):

git branch feature1 master~5
git branch master15back master~15
git rebase --onto master15back feature1 master

git rebase 文档

于 2012-07-19T21:31:29.073 回答
0

对于 q1,您可以尝试 git rebase -i master~14

在此之后,将相关提交更改为 r 意味着更新提交消息

于 2012-07-19T14:36:29.783 回答