Я собираюсь предположить, что вы на master
для всего этого ...
git branch whatever
git commit # commit currently staged changes as 'commit1'
git add docs/file3.org
git commit # commit unstaged changes as 'commit2'
Теперь у вас будет это
master
\
\--commit1--commit2
Теперь, бегите git log
и запишите SHA для 'commit1' и 'commit2'.
git checkout master
git cherry-pick commit2SHA
git cherry-pick commit1SHA
, что даст вам
master--newcommit2--newcommit1
\
\--commit1--commit2
И затем вы можете уничтожить ветку 'what'
git branch -D whatever
edit :
Вы также можете сделать что-то подобное, используя stash:
git stash --keep-index # Save unstaged changes
git stash # Save staged changes
git stash pop stash@{1} # Pop unstanged changes
git commit ... # Commit unstanged changes
git stash pop stash@{0} # Pop staged changes
git commit ... # Commit staged changes