Git: How to rebase and squash commits from branch to master?

让人想犯罪 __ 提交于 2019-12-02 17:34:35

When rebasing, Git will not move commits to another branch. It will move the branch including all its commits. If you want to get the commits into master after rebasing on top of it, use git merge <branch tip or commit of branch> to fast-forward the master branch to that commit.

Lets go though the steps.

1 - We create a new feature branch

git checkout -b new-feature

2 - Now you can add/remove and update whatever you want on your new branch

git add <new-file>
git commit -am "Added new file"
git rm <file-name>
git commit -am "Removed a file"
cat "add more stuff to file" >> <new-file>
git commit -am "Updated files"

3 - Next, pick and squash any commits down into one nice pretty commit message

git rebase -i master

The key thing you need to remember here is to change the text that says "pick" to "squash" for all of the commits after the first commit. This will squash all of the commits down to your master branch.

4 - Select the master branch

git checkout master

5 - Move the HEAD and the master branch to where new-feature is:

git rebase new-feature

You can try all of the commands out in this visual tool: http://pcottle.github.io/learnGitBranching/

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!