Git Pullは最新の状態を述べていますが、Git PushはFaust Non-Fast Forwardを拒否します

StackOverflow https://stackoverflow.com/questions/4312059

  •  29-09-2019
  •  | 
  •  

質問

私はちょうど新しい支店を引っ張り、いくつかの地元の変更を加え、コミットし、プッシュしようとしました。私はこのエラーを与えられました: ! [rejected] groups -> groups (non-fast forward)だから私は引っ張ってみましたが、言われました Already up-to-date.

これが私が引っ張ってから押しているものです。

~/dev$ git pull origin groups
Already up-to-date.
~/dev$ git push origin groups
To /mnt/ebs/git/repo.git
 ! [rejected]        groups -> groups (non-fast forward)
error: failed to push some refs to '/mnt/ebs/git/repo.git'

誰もがこれがどのように起こっているのか、どのように私がそれを修正できるかを説明できますか?

役に立ちましたか?

解決

ブランチを引いたとき、「 - トラック」オプションを使用しましたか(リモートブランチを追跡するためにローカルブランチを保持するため)。そうしなかった場合、機能しない「マージ」コマンドが説明できます。

手動でマージを行うことができます:

git fetch
git merge origin/groups

ローカルとリモートのリポジトリを比較するには、このコマンドをお勧めします(エイリアスに追加してください、便利です):

git log --graph --oneline --all --decorate

プロジェクトの履歴ツリーを印刷して、ブランチラベルを示します。したがって、あなたの枝と原産地の分岐がどこに分岐するかを見るでしょう。

注:「マージ」の代わりに線形履歴を保存したい場合は、プッシュする前にリモコンでローカルブランチの「リベース」を行うことができます。

git rebase origin/groups
git push origin groups

他のヒント

私はここに別の問題がありました。

私のgitは、すべての枝を押すようにセットアップされました。私はブランチフーにいましたが、マスターをプッシュしようとしていましたが、これは最新ではありませんでした。トリックは、それがマスターをプッシュしようとしていることに気づいていました:

To git@git.machine:repo
 ! [rejected]        master -> master (non-fast-forward)

デフォルトで現在のブランチのみをプッシュするように、.gitconfigに次のものを追加しました。

[push]
    default = current

これは、質問された質問に対する答えではありません。同じエラーメッセージで別の問題がありました。

私のローカルブランチには、適切に構成された変更から変更を引くためのリモートブランチがありませんでした[git pull]。これは、のo/pから明らかでした git remote show origin. 。だから、私は使わなければなりませんでした git pull origin <branch_name> それ以外の git pull 変更を引くために。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top