248

Gitでマージを早送りできないのはなぜですか?を使用して強制しようとすると--ff-only、「致命的:早送りできません。中止します」というメッセージが表示されます。には大きな利点があることに気づきましたがmerge --no-ff、なぜ今できないのか戸惑ってい--ff-onlyます。

4

6 に答える 6

385

git pull --rebase。他のソリューションとは異なり、宛先ブランチの名前を知る必要はありません。

アップストリームブランチが設定されていない場合は、試してくださいgit pull origin <branch> --rebase(コメントの@Rickへのクレジット)

于 2017-04-17T22:47:57.667 に答える
157

ブランチは、マージしようとしているブランチに直接基づいていません。たとえば、ブランチにない宛先ブランチに別のコミットが追加されました。したがって、早送りすることはできません(早送りでは、ブランチに宛先ブランチが完全に含まれている必要があるため)。

宛先ブランチ(git rebase <destination branch>)の上にブランチをリベースして、コミットが早送りされるようにコミットをやり直すか、通常のマージを行うことができます。

于 2012-10-28T03:57:50.600 に答える
40
  • もしも
git pull

トリックを実行しません。現在の変更と、元のブランチのプルから生じる変更の両方をマージする場合は、次のようにします。-

git merge origin/BRANCH_NAME
  • その後、マージの競合がある場合はそれを解決し、その日に実行します。
于 2021-03-02T13:57:40.180 に答える
33

git pull --no-ff->--no-ffで早送りをオフにします

于 2021-06-17T13:52:45.290 に答える
15

これは、早送りのみのオプションを有効にしているためです。ここで重要なのは、ブランチからプルするとローカルgitにマージコミットが作成され、早送りのみのオプションではプル時にマージコミットを作成できないということです。

大規模なチームの場合、多くの場合、プルからのコミットごとに、競合のリベースと解決を行うことになります。

gitlocalconfigファイルからff=only行を削除することをお勧めします。

$ cd to-my-project-root-dir

$ nano .git / config

[pull]
        ff = only // remove this line
        rebase = false

于 2020-12-13T20:48:27.850 に答える
15

git pull origin masterローカルブランチでを実行しているときにこれを取得した場合は.gitconfig、メモ帳(通常はC:\ Users \ Mynameに隠されています)で開き、これらの2行を追加します

[pull]
    ff = no

設定を保存してgit pull origin master再試行してください

于 2021-07-07T18:49:49.477 に答える