だからここに状況があります:
$ git status
#ブランチマスター上
#ブランチは[x]commitsによって'origin/master'より進んでいます。
#
SOについてはすでにいくつかの質問がありますが、私が持っているシナリオのタイプに具体的に対処しているものはないようです。質問の1つに対するこの回答は最も近いものですが、詳細には触れていません。
私はそれを逐語的に引用します:
「gitpullremotebranch」を実行した後にこのメッセージが表示された場合は、「gitfetch」でフォローアップしてみてください。
Fetchは、リモートブランチのローカル表現を更新するようです。これは、「gitpullremotebranch」を実行するときに必ずしも発生するわけではありません。
そのヒントは確かに機能します。しかし、「必ずしも起こるとは限らないのですか?」なぜだめですか?私はこれを理解する必要があります。プルが行わないのは何ですか?
私はその質問を引き継ぎたくないので、ここに私のシナリオの詳細があります:
関係する3台のコンピューター。私が開発しているMac、gitリポジトリ(つまりorigin / master)が存在するホームサーバー、およびそのサーバーからプルするWebfactionアカウント。
私はコミットをgit push origin master
行い、Macでのみ行います。通常のワークフローの一部としてWebfactionで実行される唯一のコマンドは、git pull origin master
(Fabricデプロイメントスクリプトの一部として)です。そこでコードを変更しません。私は一人の開発者なので、他の誰もしません。
時々、私はWebfactionにログインして、を含むものをチェックしgit status
ます。必然的に、私は常に「あなたのブランチは先にあります...」というメッセージを受け取ります。実行git fetch
するとメッセージが消えます。
この問題を処理するためにFabricスクリプトに追加git fetch
しようとしていますが、特にオリジン/マスターのプルオンリークローンで、なぜそれを実行する必要があるのかを知りたいです。毎日基本的な機能を使っていますが、Gitに精通していないので、初心者向けの説明をいただければ幸いです。
要求に応じて、関連するビットを更新config
します。
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@[server_address]:[path/to/repo.git]
[branch "master"]
remote = origin
merge = refs/heads/master