現在のブランチの追跡情報はありません


581

私は比較的短い期間からgithubを使用しており、コミットとプルの実行には常にクライアントを使用してきました。昨日はgit bashから試してみることにし、新しいリポジトリとコミットされたファイルを作成しました。

今日、私は別のコンピューターからリポジトリーに変更を加えました。変更をコミットしました。今、家に帰っgit pullて、ローカルバージョンを更新するためにを実行しました。これを取得します。

There is no tracking information for the current branch.
    Please specify which branch you want to merge with.
    See git-pull(1) for details

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream develop origin/<branch>

このレポへの唯一の貢献者は私であり、ブランチはありません(ただのマスター)。私はWindowsを使用していて、git bashからプルを実行しました。

ここに画像の説明を入力してください

gitステータス:

$ git status
# On branch master
nothing to commit, working directory clean

gitブランチ:

$ git branch
* master

何が悪いのですか?


さて、いかがgit remote -vですか?それは何と言いますか?
クリスウェル2015


を実行しgit pullたときに、クローンされたリポジトリのディレクトリにcdしていない場合にも、このエラーが発生する可能性があります。
Victoria Stuart

Git 2.24では、2019年第4四半期git pull --set-upstream-to=origin/master masterが可能です。以下の私の回答を
VonC

回答:


950

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

git pull origin master

または、ローカルマスターブランチがgithubマスターブランチをアップストリームとして追跡するように設定することもできます。

git branch --set-upstream-to=origin/master master
git pull

このブランチトラッキングは、リポジトリを複製するときに自動的に設定されます(デフォルトのブランチのみ)。ただし、既存のリポジトリにリモートを追加する場合は、自分でトラッキングを設定する必要があります。ありがたいことに、gitからのアドバイスにより、その方法を覚えやすくなっています。


3
完璧!動いた。では、デフォルトの「git pull」用の「デフォルトブランチ」がなかったのはなぜですか。それがエラーが発生した理由ですか?
valerio0999 2015

16
--set-upstreamはどうやらgit 1.9.xで廃止予定です。今後はgit branch -u origin/master、マスターをすでにチェックアウトしている場合は、などを使用します。そうでない場合、git branch -u origin/master master動作します。
Bart Read

5
@BartReadは、新しいより明確な--set-upstream-to=構文を使用するように更新しました。(これはの代替品です--set-upstream
ComputerDruid

61
これは申し訳ありませんが、すべてのブランチに対して手動で設定する必要がありますか?originをデフォルトのリモートに設定して、すべてのプッシュ/プルのデフォルトを同じ名前のoriginのブランチに設定できないのはなぜですか?これは難しいですか?
Alexander Mills

4
ああ、ここで私にとって重要なのは、リモコンをドロップして再作成すると、オリジナルで設定されたトラッキングfetchが失われたことです。したがって、再度設定する必要があります。:)
Ben

42

参照:git checkoutタグ、git pullがブランチで失敗する

私のように常にこれを行う必要がある場合は、次のコードを.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

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


1
これを.gitconfig1行でグローバルに追加する方法です(ローカルまたは他の構成に応じて変更できます):git config --global alias.set-upstream '!git branch --set-upstream-to=origin/$(git symbolic-ref --short HEAD)'
Danny Bullis

17

ComputerDruidの答えは素晴らしいですが、必要がない限り、手動でアップストリームを設定する必要はないと思います。これは必要なステップだと人々が思うかもしれないので、私はこの答えを追加します。

以下のようにプルしたいリモートを指定すると、このエラーはなくなります。

git pull origin master

originリモートの名前であり、master支店名です。


1)リモコンの名前を確認する方法

git remote -v

2)リポジトリで利用可能なブランチを確認する方法。

git branch -r

1
正解です。ありがとうございます。
Bahman.A

7

git checkout -b <feature-branch-name>最初にリモートブランチを作成せずにローカルブランチを作成するため、このメッセージに頻繁に遭遇します。

すべての作業が完了してローカルでコミットされた後git push -u、リモートブランチを作成し、すべての作業をプッシュしてから、マージ要求URLをプッシュする修正が行われました。


1
それだけの価値があるgit push -u origin <my-feature-branch-name>ため、リモートブランチを作成して自分の作業をプッシュするために実行しなければなりませんでした
Donnie C

6

上記の例を試してみましたが、別のコンピューターで作成した(非マスター)ブランチと同期させることができませんでした。背景として、このリポジトリをコンピューターA(git v 1.8)で作成し、コンピューターB(git 2.14)に複製しました。私はすべての変更をcomp Bで行いましたが、変更をコンピューターAIにプルしようとしたときにそれを行うことができず、上記の同じエラーが発生しました。上記のソリューションと同様に、私はしなければなりませんでした:

git branch --set-upstream-to=origin/<my_repository_name> 
git pull

少し異なりますが、うまくいけば誰かを助けます


これでうまくいきました。別のコンピューターでセットアップされた非マスターブランチも使用していました。Git Bashでこのコマンドを使用すると、変更を取得できました:)
Novastorm





1

元にプッシュしないで新しいgitブランチを作成したときも、同じことが起こりました。

最初にこれらの2行を実行してみてください。

git checkout -b name_of_new_branch # create the new branch
git push origin name_of_new_branch # push the branch to github

次に:

git pull origin name_of_new_branch

今なら大丈夫だ!


1

これは、現在のブランチがリモートのブランチを追跡していないために発生します。だからあなたは2つの方法でそれを行うことができます。

  1. 特定のブランチ名でプルする

git pull origin master

  1. または、特定のブランチをローカルブランチに追跡することもできます。

gitブランチ--set-upstream-to = origin /


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.