Git Pullは最新の状態を述べていますが、Git PushはFaust Non-Fast Forwardを拒否します
質問
私はちょうど新しい支店を引っ張り、いくつかの地元の変更を加え、コミットし、プッシュしようとしました。私はこのエラーを与えられました: ! [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
変更を引くために。