git merge
コミットなしで を実行することは可能ですか?
「man git merge」はこう言います:
With --no-commit perform the merge but pretend the merge failed and do not autocommit,
to give the user a chance to inspect and further tweak the merge result before
committing.
git merge
しかし、を使用しようとすると、--no-commit
依然として自動コミットされます。私が行ったことは次のとおりです。
$> ~/git/testrepo$ git checkout master
Switched to branch 'master'
$> ~/git/testrepo$ git branch
* master
v1.0
$> ~/git/testrepo$ git merge --no-commit v1.0
Updating c0c9fd2..18fa02c
Fast-forward
file1 | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
$> ~/git/testrepo$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
続いて、git log
v1.0 ブランチからのすべてのコミットがマスターにマージされたことがわかります。
ベストアンサー1
マージ実行中の出力に注意してくださいFast Forward
。次のように表示されます。
このような状況では、次のことを行う必要があります。
git merge <name-of-branch> --no-commit --no-ff
重要: この方法を実行すると、ステージング領域内のファイルに変更を加えることができなくなります。つまり、ファイルを削除/追加したり、ファイルを変更したりすることはできません。
変更をマージし、マージしたすべての変更を手動で入力したかのようにコミットする場合 (従来のマージとは対照的)、rm .git/MERGE_HEAD
その後に を実行して、git にマージが行われたことを強制的に忘れさせる必要があります。