首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何缩短重基工作流?

如何缩短重基工作流?
EN

Stack Overflow用户
提问于 2016-04-07 14:42:14
回答 3查看 47关注 0票数 1

假设我已经在myBranch上提交了10次提交(并且myBranch是签出的)。我想重新基地与大师和壁球所有提交。

我们目前的工作流程是..。

  1. git结账母版
  2. git提取原点
  3. git拉-r原点母版
  4. git结帐myBranch
  5. git重基-i母版
  6. git push -f myBranch

总共有6个步骤和交互式重基控制台来处理(更别提武力推进的风险了)。

是否有一个更短的工作流程,会有同样的效果?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-07 14:47:20

如果您的目标只是针对上游的master分支进行重新基地,那么没有理由更新您的本地master分支。您可以替换以下步骤:

代码语言:javascript
复制
git checkout master
git fetch origin
git pull -r origin master
git checkout myBranch
git rebase -i master

通过以下方式:

代码语言:javascript
复制
git fetch origin
git rebase -i origin/master

如果要避免交互式重基,可以执行this answer中描述的操作。

代码语言:javascript
复制
git fetch origin
git reset --soft origin/master
git commit -m 'message for merged commit'

这在不影响工作目录的情况下将当前分支重置为origin/master,并在索引中保留所有更改。这意味着git commit将在一个步骤中提交您的所有更改。

票数 2
EN

Stack Overflow用户

发布于 2016-04-07 14:53:20

如果您只想使用本地提交来压缩它们,那么您甚至不需要进行交互式重基。您可以使用git reset --soft来完成它,这要方便得多:

git reset --soft HEAD~10 #软重置为10提交

git commit -m "Message for the squashed commits" #此时您的所有更改都将添加到索引中

然后,您可以根据远程的master分支进行重基:

git fetch origin git rebase origin/master

请注意,只有当没有人(除了您)已经从myBranch中提取这10次提交时,压缩提交才是安全的,否则您将重写历史,您将有一个糟糕的时间。

票数 2
EN

Stack Overflow用户

发布于 2016-04-07 14:47:52

代码语言:javascript
复制
git fetch origin
git rebase -i origin/master
git push -f origin myBranch

或者,如果您希望保存所有行中对节的更改,并希望使用一个全新的提交消息

代码语言:javascript
复制
git fetch origin
git rebase origin/master
git reset --soft origin/master
git commit
git push -f origin myBranch

或者,如果您希望保存所有行上的节更改,并且希望重用所有压缩提交中的提交消息,则请执行以下操作

代码语言:javascript
复制
git fetch origin
git rebase origin/master
git reset --soft origin/master
git commit --edit -m"$(git log --format=%B --reverse HEAD..HEAD@{1})"
git push -f origin myBranch
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36479576

复制
相关文章

相似问题

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