マージコミットを作成せずに「git merge」を実行する方法は? 質問する

マージコミットを作成せずに「git merge」を実行する方法は? 質問する

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 logv1.0 ブランチからのすべてのコミットがマスターにマージされたことがわかります。

ベストアンサー1

マージ実行中の出力に注意してくださいFast Forward。次のように表示されます。

このような状況では、次のことを行う必要があります。

git merge <name-of-branch> --no-commit --no-ff

重要: この方法を実行すると、ステージング領域内のファイルに変更を加えることができなくなります。つまり、ファイルを削除/追加したり、ファイルを変更したりすることはできません。

変更をマージし、マージしたすべての変更を手動で入力したかのようにコミットする場合 (従来のマージとは対照的)、rm .git/MERGE_HEADその後に を実行して、git にマージが行われたことを強制的に忘れさせる必要があります。

おすすめ記事