Gitリポジトリのクローンを作成し、タグをチェックアウトしました。
# git checkout 2.4.33 -b my_branch
これは問題ありませんが、ブランチでgit pull
を実行しようとすると、gitはこのエラーを吐き出します。
現在のブランチの追跡情報はありません。マージするブランチを指定してください。詳細については、git-pull(1)を参照してください
git pull <remote> <branch>
このブランチの追跡情報を設定する場合は、次の方法で設定できます。
git branch --set-upstream new Origin/<branch>
git pull
はmasterブランチのみを更新し、現在のブランチはそのままにしておきます(とにかくタグです)。このようなことは可能ですか?
これが必要な理由は、常にgitがリポジトリをプルし、もちろん上記のエラーのために失敗する自動スクリプトがあるためです。
編集: Gitの新しいバージョンでは、--set-upstream master
は廃止されました。代わりに--set-upstream-to
を使用する必要があります。
git branch --set-upstream-to=Origin/master master
プロンプトに従って、次を実行できます。
git branch --set-upstream master Origin/master
その後、git pull
を実行するだけでコードを更新できます。
私は同じ問題を抱えていて、このコマンドで修正しました:
$ git Push -u Origin master
ヘルプファイルから、-uは基本的にプルのデフォルトを設定します。
-u, --set-upstream`
For every branch that is up to date or successfully pushed, add
upstream (tracking) reference, used by argument-less git-pull(1) and
other commands. For more information, see branch.<name>.merge in
git-config(1).
これらのコマンドを試してください:
git pull Origin master
git Push -u Origin master
を使用してmasterブランチに切り替えます
$ git checkout master
git pull
操作を実行します
$ git pull Origin/master
その後、my_branch
に再び切り替えることができます。
@ alesko :チェックアウト後のgit pull
のみを実行することはできませんmy_branch
はmaster
ブランチのみを更新します。git pull
はcurrentブランチにもマージされるため、シナリオではmy_branch
にマージされます
@ Simon :プッシュも行います。何故ですか?
$ git branch -u Origin/master
Branch master set up to track remote branch master from Origin.
ドキュメントによると:
-u <upstream>
Set up <branchname>'s tracking information so <upstream> is considered
<branchname>'s upstream branch. If no <branchname> is specified,
then it defaults to the current branch.
複数のブランチがある場合があります。また、現在のブランチはアップストリームをリモートに設定していません。
これを修正する手順:
git checkout branch_name
git branch --set-upstream-to=Origin/remote_branch_name local_branch_name
例えば.
// this set upstream of local branch develop to remote branch Origin/develop,
git branch --set-upstream-to=Origin/develop develop
これを行った後、git pull
を実行すると、指定されたブランチからプルします。
まず、正しいブランチにいることを確認してください。
その後(1回のみ):
git branch --track
その後、これは再び機能します:
git pull
プルするブランチを指定できます。
git pull Origin master
または、ローカルマスターブランチがgithubマスターブランチをアップストリームとして追跡するように設定することもできます。
git branch --set-upstream-to=Origin/master master
git pull
このブランチトラッキングは、リポジトリのクローンを作成するときに自動的に設定されます(デフォルトブランチのみ)が、既存のリポジトリにリモートを追加する場合は、トラッキングを自分で設定する必要があります。ありがたいことに、gitのアドバイスにより、その方法を覚えやすくなります。
--set-upstreamはgit 1.9.xで廃止されたようです。今後は、次のようなものを使用します
git branch -u Origin/master
マスターを既にチェックアウトしていると仮定します。そうでない場合、git branch -u Origin/master master
は機能します
これを試して
git checkout master
git pull Origin master
現在のブランチの追跡(上流)を設定する必要があります
git branch --set-upstream master Origin/master
--trackフラグを使用できる代わりに、すでに非推奨です
git branch --track master Origin/master
@caseyが通知するドキュメントリファレンスも気に入っています。
-u <upstream>
Set up <branchname>'s tracking information so <upstream> is considered
<branchname>'s upstream branch. If no <branchname> is specified,
then it defaults to the current branch.
私のために働いたのは:git branch --set-upstream-to = Origin masterもう一度プルを行ったとき、masterからの更新のみを取得し、警告が消えました。
私のように常にこれを行う必要がある場合は、.gitconfig
ファイルに次を追加することで、エイリアスを自動的に設定することができます。
[alias]
set-upstream = !git branch --set-upstream-to=Origin/`git symbolic-ref --short HEAD`
メッセージThere is no tracking information...
が表示されたら、git set-upstream
を実行し、次にgit Push
を再度実行します。
このコマンドは非推奨です:git branch --set-upstream master Origin/master
したがって、追跡を設定しようとすると、これは私のために働いたコマンドです:
git branch --set-upstream-to=Origin/master master
更新をダウンロードするだけの場合:
git fetch Origin master
ただし、これはOrigin/master
という参照を更新するだけです。ローカルmaster
を更新する最良の方法は、別のコメントで言及されているチェックアウト/マージです。 Ifローカルmaster
がOrigin/master
がオンになっているメイントランクから分岐していないことを保証できる場合、couldgit update-ref
を使用して現在のmaster
を新しいポイントにマッピングしますが、それはおそらく定期的に使用するのに最適なソリューションではありません...