2012-04-04 15 views
4

これは私の設定です:私は自宅や大学で働いており、リモートはオンラインで保存されています。 3つの場所には、br1、br2、br3という3つのブランチがあります。何も想像もできません。各ワークステーションの各ブランチは同じです。つまり、自宅でbr1、仕事でbr1、外でbr1はすべて同じ支店に対応します。Git:リモートからプルする

今、私は自宅でbr2を取得しようとすると、ブランチ私は併合する必要があります。私は何が起こっているのか、それを修正する方法を知っていますが、なぜそれが起こっているのか理解できません。 gitは同じ名前のブランチとマージしないのですか?私が持っているすべてのブランチの設定ファイルにエントリを作成する必要がありますか?

git rm --cachedとgit reset --mixedの違いは何ですか?

+0

リモートリポジトリにプッシュするとどうでしょうか。 –

+0

あなたは自宅でbr2を作り、それを自宅から離れたところにプッシュしましたか? – aschmid00

+0

@James git statusは、私の作業ディレクトリがきれいで、プッシュするものがないと報告しています。私はgit pullを使ってリモートの変更をマージするよう求めています。正方形に戻ってください:/ – kshenoy

答えて

2

私はブランチをローカルに作成し、それをリモートにプッシュしたということが起こったと思います。
この場合、ローカルブランチにはアップストリームがありません。

あなたは(、

git branch --set-upstream foo origin/foo 

-u

--set-上流

最新であるか、正常にプッシュすべてのブランチの上流を設定 上流を追加することができます引数なしのgit-pull(1)と の他のコマンドで使用されています。詳細は、 のgit-config(1)にあるbranch..mergeを参照してください。

+1

'--set-upstream'は合理的に最近のバージョンのgitを必要とします(1.7、 。また、push(プッシュ)中に '-set-upstream'オプションが追加されました(つまり1.7.4?)ので、アップストリームの原点を同時に作成して設定することができます。 – torek

+0

でも、なぜ最新のgitバージョンを持っていないのですか? :) – aschmid00

+0

あなたはそう思うでしょう...私はしばしば石ナイフとベアキンを持っていますが、機械の中にはPython 2.3があるものがあります。 – torek

0

設定ファイルを手動で編集する必要はありません。私は、ブランチを削除し、最初から追跡ブランチをチェックアウトすることをお勧めします。あなたは押し引きするとき、彼らは常に適切に設定されます--trackでリモートブランチをチェックアウトした場合

git branch -D br2 
git checkout --track origin/br2 

:あなたがプッシュする必要があるすべてのローカルの変更を持っていないので注意してください。

+0

マグヌス、私は同じ方法でそれを解決しました。しかし、なぜ私は最初にその問題を抱えているのか理解できませんでした。 --trackを付けてくれてありがとう。それを知らなかった:) – kshenoy

+0

420から別のものへ:p – ralphtheninja

+0

@MagnusSkog最新のgitを使用すると、リモートブランチを明示的に追跡する必要はありません。ブランチをチェックアウトすると、自動的にリモートブランチを追跡します。 – aschmid00

関連する問題