Git

Git combine multiple commits int

2019-02-19  本文已影响1人  JaedenKil
$ git log --oneline
706ac8d (HEAD -> master) Add file03
e62bfba Add file02
6dd771d Add file01

Say I want to combine 706ac8d and e62bfba into one commit.

git rebase -i HEAD~2

In the editor, change

pick e62bfba Add file02
pick 706ac8d Add file03
# This is the original message

to

pick e62bfba Add file02
squash 706ac8d Add file03
# This is the new message, then save and exit editor, then another editor pops up to make you edit the commit message

Change

Add file02 
Add file03
# This is the original message

to

Add file02 and file03
# Add file03

Then save and exit.

$ git log --oneline
41b43e7 (HEAD -> master) Add file02 and file03
6dd771d Add file01
$ git log --oneline
706ac8d (HEAD -> master) Add file03
e62bfba Add file02
6dd771d Add file01
$ git checkout -b dev
Switched to a new branch 'dev'

Make some changes on the new branch dev, it now looks like:

$ git log --oneline
82850ae (HEAD -> dev) Add file05
d6ec04b Update file04 again
f0962c3 Update file04
a11af2c Add file04
706ac8d (master) Add file03
e62bfba Add file02
6dd771d Add file01

But as a matter of fact, when merging dev into master, the three new commits about file04 should be squashed into one commit.

# Checkout to master
$ git checkout master
Switched to branch 'master'

# Squash all changes
$ git merge --squash dev
Updating 706ac8d..82850ae
Fast-forward
Squash commit -- not updating HEAD
 file04 | 1 +
 file05 | 0
 2 files changed, 1 insertion(+)
 create mode 100644 file04
 create mode 100644 file05

# Check git status
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   file04
        new file:   file05

# All changes are now available for committing
$ git commit -m "Add file04 and file05"
[master fd92f0a] Add file04 and file05
 2 files changed, 1 insertion(+)
 create mode 100644 file04
 create mode 100644 file05

# Show commit status
$ git log --oneline
fd92f0a (HEAD -> master) Add file04 and file05
706ac8d Add file03
e62bfba Add file02
6dd771d Add file01
上一篇下一篇

猜你喜欢

热点阅读