実行すると次のようになります git status
Your branch is ahead of 'origin/master' by 3 commits.
私は他のいくつかの投稿でこれを修正する方法が実行されていることを読んgit pull --rebase
だことがありますが、正確にリベースとは何ですか?
実行すると次のようになります git status
Your branch is ahead of 'origin/master' by 3 commits.
私は他のいくつかの投稿でこれを修正する方法が実行されていることを読んgit pull --rebase
だことがありますが、正確にリベースとは何ですか?
回答:
ローカルマスターに変更を加え、リモートにプッシュしなかったため、このメッセージが表示されます。これを「解決」するにはいくつかの方法があり、通常はワークフローがどのように見えるかに依存します。
git push origin
発信元がリモートであると想定するだけですgit reset --hard origin/master
git diff master origin/master
(つまりgit diff local remote
)
git push origin master:branch
which を使用してreturnを返しEverything up-to-date
ました。
修正するものはありません。あなたは単に3つのコミットを行い、それらをまだリモートブランチに移動していません。目的に応じて、いくつかのオプションがあります。
git push
:変更をリモートに移動します(すでにリモートに他の変更がある場合、拒否される可能性があります)git pull
:変更がある場合はリモートから取得し、変更にマージしますgit pull --rebase
:上記と同じですが、リモートの変更に加えてコミットをやり直してくださいあなたは古典的な状況にあります(通常、ほとんどのワークフローではマスターに多くのことをコミットしません)。これが私が通常行うことです:変更を確認します。たぶんgit rebase --interactive
それらにいくつかの化粧品をするためにa をし、吸うものを落とし、それらをより論理的にするためにそれらを並べ替えます。次に、でリモートに移動しますgit push
。ローカルブランチが最新ではないためにこれが拒否された場合:git pull --rebase
最新の変更に加えて作業をやり直すgit push
。
your team lead merged to master
ですか?もうマスターにプッシュしたって言わなかったの?追加のコミットには何が含まれていますか?試してみてくださいgit diff origin/master
リモートからどのようにあなたのローカルブランチが異なるを参照してください。
ステップ1:git checkout <branch_name>
これはそのブランチに入るのは明らかです。
ステップ2 :git pull -s recursive -X theirs
リモートブランチの変更を取り、競合が発生した場合は変更に置き換えます。ここで行うgit status
と、このような結果が得られます。ブランチは、3つのコミットによって「origin / master」よりも進んでいます。
ステップ3 :git reset --hard origin/<branch_name>
ステップ4 :git fetch
ブランチをハードリセットします。
楽しい。
Bitbucketのプルリクエストをマージした後、この問題が発生しました。
しなければならなかった
git fetch
それだけでした。
通常、マスターと異なるコミットを確認する必要がある場合:
git rebase -i origin/master
このようにして、コミットを確認し、削除するか選択するかを決定できます...
git diff ...
。また、さまざまな魔術師はすべてうまくいきません。私がこれをしたとき、それは私noop
に唯一のコミットとして与えました、そして私がそれを受け入れたとき、今私のブランチはorigin / masterと同期しています。したがって、origin / masterからのコミットの差分は事実上何もなかったようです。
からのこのメッセージgit
は、ローカルリポジトリで3つのコミットを行い、それらをmaster
リポジトリに公開していないことを意味します。そのために実行するコマンドはgit push {local branch name} {remote branch name}
です。
コマンドgit pull
(およびgit pull --rebase
)は、リモートリポジトリにコミットがあり、ローカルリポジトリにない場合のその他の状況用です。--rebase
オプション手段git
その後、あなたの地元の脇にコミット移動する、リモートリポジトリとの同期、およびあなたの三つの新しい状態からコミット適用してみてください。競合がある場合は失敗する可能性がありますが、それらを解決するように求められます。rebase
を使用して競合を解決する方法がわからない場合は、を中止して、を実行するgit rebase --abort
前の状態に戻すこともできますgit pull --rebase
。
これは、Bitbucketのプルリクエストをマージした後で一度起こりました。
私はしなければならなかった:
git fetch
私の問題は解決しました。これが役に立てば幸いです!!!
$ git fetch
- remote: Enumerating objects: 3, done.
- remote: Counting objects: 100% (3/3), done.
- remote: Compressing objects: 100% (3/3), done.
- remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
$ git pull
- Already up to date!
- Merge made by the 'recursive' strategy.
最終的に:
$ git push origin