138

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マスターブランチのみを更新し、現在のブランチはそのままにしておきたい(とにかくタグです)。このようなことは可能ですか?

これが必要な理由は、常にgitがリポジトリをプルする自動スクリプトがあり、もちろん上記のエラーのために失敗するためです。

4

14 に答える 14

92

私は同じ問題を抱えていて、このコマンドで修正しました:

$ 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).
于 2013-01-09T10:08:18.390 に答える
48

次のコマンドを試してください。

git pull origin master
git push -u origin master
于 2013-03-27T09:14:39.107 に答える
10

を使用して master ブランチに戻ります

$ git checkout master

そして、git pull操作を実行します

$ git pull origin/master

その後、元に戻すことができますmy_branch

于 2012-04-13T20:23:35.290 に答える
5

@alesko : ブランチのみを更新するためgit pullにチェックアウト後にのみ行うことはできません。現在のブランチにもマージされる ため->シナリオではmy_branchmaster
git pullmy_branch

@サイモン:プッシュも行います。何故ですか?

$ 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.
于 2013-03-13T15:58:47.043 に答える
4

まず、正しいブランチにいることを確認してください。
その後 (1 回のみ):

git branch --track

その後、これは再び機能します:

git pull
于 2013-10-07T14:00:54.900 に答える
4

複数のブランチがある場合があります。そして、現在のブランチはそのアップストリームをリモートに設定していません。

これを修正する手順:

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、指定されたブランチからプルされます。

于 2014-11-12T04:30:07.887 に答える
4

プルするブランチを指定できます。

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

master をすでにチェックアウトしていると仮定します。そうでない場合は、 git branch -u origin/master master動作します

于 2017-11-23T11:19:31.253 に答える
3

私のようにこれを常に行う必要がある場合は、.gitconfigファイルに次を追加することで、自動的に行うようにエイリアスを設定できます。

[alias]
    set-upstream = !git branch --set-upstream-to=origin/`git symbolic-ref --short HEAD`

メッセージが表示されたら、実行してからもう一度There is no tracking information...実行してください。git set-upstreamgit push

https://zarino.co.uk/post/git-set-upstream/に感謝します

于 2016-02-18T16:33:15.077 に答える
2

これを試して

git checkout master

git pull origin master
于 2014-11-14T12:47:45.093 に答える
1

現在のブランチの追跡 (上流) を設定する必要があります

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.
于 2014-05-16T15:59:13.793 に答える
1

私にとってうまくいったのは: git branch --set-upstream-to=origin master 再度プルを行ったとき、マスターからの更新のみを取得し、警告は消えました。

于 2014-09-19T13:48:53.887 に答える
0

アップデートをダウンロードするには:

git fetch origin master

ただし、これは という参照を更新するだけorigin/masterです。ローカルを更新する最良の方法masterは、別のコメントで言及されているチェックアウト/マージです。ローカルがオンになっているメイントランクから分岐していないことを保証できる場合は、現在のポイントを新しいポイントにマップするために使用できますが、それはおそらく定期的に使用するための最良のソリューションではありません...masterorigin/mastergit update-refmaster

于 2012-04-13T21:55:57.117 に答える