首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git签出<commit>,然后提交和保留所有提交

Git签出<commit>,然后提交和保留所有提交
EN

Stack Overflow用户
提问于 2015-03-25 15:33:30
回答 2查看 52关注 0票数 1

我在Git上有一个问题要解决,下面是我们执行的步骤的顺序

假设我对师父犯了三次罪

代码语言:javascript
复制
- commit-1
- commit-2
- commit-3

现在我要结帐提交-2

代码语言:javascript
复制
git checkout commit-2

然后我做出承诺-4

现在,我希望保留主分支上的所有四个提交,我的主分支的git日志应该按照以下顺序查看

代码语言:javascript
复制
Commit-3
commit-4
commit-2
commit-1

我怎样才能做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-25 15:43:58

一旦您签出commit-2,您就处于detached HEAD mode中。

要做的第一件事是创建一个分支,其中您的commit-4是:

代码语言:javascript
复制
git checkout commit-2
git add ...
git commit -m "commit-4"
git checkout -b tmp

1--2--3 (master) 
    \
     4 (tmp) 

然后,可以在master的基础上重新设置commit-3,以便在commit-4上重放commit-3

代码语言:javascript
复制
git rebase tmp master

1--2--4--3 (master, tmp)
票数 1
EN

Stack Overflow用户

发布于 2015-03-25 15:42:27

我会这样做的

首先提交1,2,3

代码语言:javascript
复制
git commit -am "commit 1"
git commit -am "commit 2"
git commit -am "commit 3"

然后你回去提交2

代码语言:javascript
复制
git checkout <<hash or HEAD^>

然后提交4

代码语言:javascript
复制
git commit -am "commit 4"

然后你把你独立的头合并成新的头

代码语言:javascript
复制
git merge <<reference of commit 3>>

如果有更好的方法,请评论。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29260004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档