0

2 つの Git クローンは、互いを表すリモート追跡ブランチがなくても、互いにプッシュ/プルできますか? ほとんどの場合、それらが非常に便利であることはわかっていますが、ときどきセカンダリ リポジトリ (ベア サーバーではない) 間でプル/プッシュしたい場合があり、混乱させたくありません。リモート トラッキング ブランチを気にしない場合、それを削除したり、まったく作成しないようにすることはできますか?

4

3 に答える 3

2

リモート追跡ブランチは必要ありません。これらは、(a) git push と pull にデフォルトの動作を与え、(b) git status 出力のリモート ブランチとは対照的に、ローカル ブランチのステータスに関する情報を受け取るための便利なものです。Git を使用する必要はありません。

物をごちゃごちゃさせたくない

リモート追跡ブランチを設定しても、まったく混乱しないことに注意してください。ローカル リポジトリの構成ファイルに 3 行を追加するだけです。他には何もしません。実行中のすべての追加情報git statusは、コマンドが実行されたときにのみ生成されます。何も保存されていないか、そうでなければ物事が散らかっています。そのため、必要がなくても、通常はリモート追跡ブランチを設定しても問題ありません。

于 2013-02-24T19:42:32.937 に答える
2

ローカル ブランチでリモート ブランチの変更を追跡しない場合:

ブランチでリモート ブランチを追跡する必要はありません。それはあなたが持っていないいくつかの利点を持つ便利さです。git statusあなたのブランチがオリジンよりxコミット先であると述べるなど。

追跡ブランチを設定しなくても、リモートを使用できなくなるわけではありません。URL を入力する代わりに、すべてのコマンドで引き続きリモートを使用できます。

どのブランチが追跡されているかを確認するには、 を使用しますgit branch -avv。リモート ブランチを追跡しているブランチは、コミット ハッシュの左側にリモート ブランチをリストします。

ブランチを削除して追跡なしで再作成する以外に、ブランチから追跡を削除する方法がわかりません。

リモート ブランチのローカル コピーを意味する場合 ( で表示git branch -r):

これらは -- で削除できますがgit branch -dr <remote/branch>、次にプルまたはフェッチしたときに戻ってきます。それらはgit fetch ...動作するために必要であり、 をgit pull ...使用しますgit fetch ...。毎回手動で削除するか、スクリプトを作成する必要がありました。

ただし、リポジトリに実際の混乱やオーバーヘッドを追加することはありません。リモート追跡ブランチは、ディスク上では、コミット ハッシュを含む単なるファイルです。コミットは別の場所に保存されます。おそらく、それらを取得したかったため、1 つ以上のローカル ブランチにマージまたはリベースされています。

この情報は、リモートの代わりに URL を使用して取得できます。これは、FETCH_HEAD ファイル以外の場所でフェッチされたものの記録を作成しません。このファイルはフェッチごとにオーバーライドされるため、別のフェッチが実行される前にローカル ブランチにマージまたはリベースされていないと、コミット データが失われます。リモート トラッキング ブランチは、フェッチされたデータがガベージ コレクションされないようにするために存在します。

于 2013-02-24T19:48:20.610 に答える
1

はい、リモコンを追加しないだけで簡単に実現できます。

リポジトリ間でプッシュ/プルする通常の方法は ですがgit remote add NAME URL、これは便利なだけです (また、リモート トラッキング ブランチにも必要です)。

を使用する代わりに、プルを同じように使用git pull REMOTE_NAME BRANCHできます。git pull URL BRANCH基本的に、ほとんどの git コマンドでリモートの名前をリポジトリの URL に置き換えることができます。

于 2013-02-24T19:29:36.453 に答える