我在Git中苦苦挣扎,无法将它们正确地归因于提交。最新的两次提交最终位于不同的分支中(一个在主分支中,一个在pm / gitrev中)-但需要它们都在同一功能分支中彼此重叠(例如,新的东西,例如pm / git-version),我可以推送到远程存储库“ pm”,以便可以在GitHub上为源/主服务器创建适当的请求。
我当前的历史记录完全是线性的,看起来像:
$ git log --graph --pretty=format:"%h %d %s %n" -4
* 02f82ee (HEAD -> git-version, pm/gitrev) Fail gracefully when operating on detached head
|
* 998d969 (pm/master, master) Change: Adopt the versioning scheme now with git
|
* c95db24 (origin/master, origin/HEAD) Added tag 0.4.5 for changeset e115586dd0a0
|
* 3418735 (tag: 0.4.5) Update: Changelog for release
我基于998d969(主服务器)创建了一个新分支,并将另外两个分支重新基于该分支,例如由git rebase -b master git-version
。但是我的历史是线性的,但是提交并没有像假定的那样改变分支。
git rebase
我会错过什么?如何从最前面的提交中删除所有分支信息,然后根据源/主节点将它们移到联合但新的分支中?
我可以重写远程仓库'pm'的历史记录。
答案 0 :(得分:3)
要将提交移至另一个分支,可以使用命令git cherry-pick
:
git cherry-pick <commit-hash>
您可以在原始提交分支的日志中获取提交哈希:
git log