2016-09-22 4 views
-1

私はGITの使い方が初めてで、ドキュメントのガイドを読んでいますが、私の頭を1つのものに囲まれているようには見えません。なぜ私はgitで起源を引き出す必要があります<branch-name>?

githubソースにmasterとfoobarの2つのブランチが含まれているとします。 私のシステムでgit branchを実行すると、両方のブランチの名前が表示されます。これは、私のシステムに両方のブランチがあることを意味します。しかし

、私はgit checkout foobar、その後はgit pullを行う行う際に、何が本当に起こりませんし、代わりにgitのは、私に語った、

は `現在のブランチには追跡情報はありません。 マージするブランチを指定してください。 詳細は、git-pull(1)を参照してください。

git pull <remote> <branch> 

あなたはこのブランチのために追跡情報を設定したい場合はあなたがそうすることができます。

git branch --set-upstream-to=origin/<branch> foobar 

`

それは私がgit pull origin foobarを実行したときのみだが、ファイルは何に応じて変更し、変更されましたGitHubで更新されました。なぜこれが起こるのですか? git pullで私は間違っています。 AFAIK、私はgit pullが最新のコードコミットに私の現在のブランチを更新すると思った。

答えて

0

Gitは強力なツールであり、そのほとんどはユーザーに与える力です。プル=フェッチ+マージ。あなたはfoobar(ローカルブランチfoobarはリモートではない)をチェックアウトしているので、gitはそれを自動的に引き受けるべきですか? Gitはその質問に自動的に答えません。

gitでの私の経験から、sourcetreeのようにGUIを使い始めるのでなければ、イライラするでしょう。

サマライズするには、リモートから引き出すには、リモートブランチ(ローカルではない)を指定する必要があり、現在のローカル作業ブランチとマージしようとします。

1

foobarローカルブランチfoobarを作成し、別個にリポジトリ内のブランチを作成したようです。同じ名前を持っているにもかかわらず、これらの支店はリンクされていません。

ローカルブランチfoobarを持っていない場合は、git checkout foobarは、第二部(--track origin/foobar)はあなたに注意を払うようにしたい部分であることをgit checkout -b foobar --track origin/foobar

になります。これにより、最初のチェックアウト操作のためにリモートトラッキングが設定されます。

問題を修正するには、実行するように指示されているコマンドを実行することができます。これは、事実の後に上流ブランチを設定するだけです。ほとんどの場合、それは最初のチェックアウトコマンドであるべきであるために、悪い考えです。しかし、あなたの場合、2つの別々の(本質的に)同一のブランチを作成したように見えます。

関連する問題