[解決済み】トラッキングブランチとは何ですか?
質問
git に適用される "tracking branch" について、どなたか説明してください。
以下は、その定義です。 git-scm.com :
<ブロッククオートGitにおける「トラッキングブランチ」とは、ローカルの ブランチは、リモート ブランチです。そのブランチ上でプッシュやプルをすると ブランチは、自動的に リモートブランチにプルする と接続されています。
からのプルを常に行う場合に使用します。 同じ上流ブランチから新しい ブランチを使用したくない場合、そして git pull"を明示的に実行します。
残念ながら、git の初心者で SVN から来た私には、この定義は全く意味がありません。
"に目を通しています。 Git の実用的なガイド トラッキングブランチは良いもので、最初のリモート (この場合は origin) を作成した後に master ブランチをトラッキングブランチにするよう設定することが推奨されているようですが、残念ながらこの本では トラッキングブランチが良い理由 または masterブランチをオリジンリポジトリのトラッキングブランチにすることで、どのような利点がありますか? .
どなたかご教示ください(英語で)。
どのように解決するのですか?
ブランチの追跡
リモートブランチからローカルブランチをチェックアウトすると、自動的にトラッキングブランチと呼ばれるものが作成されます。トラッキングブランチは、リモートブランチと直接関係のあるローカルブランチです。トラッキングブランチにいるときに
git push
Git は、どのサーバーとブランチにプッシュすればよいかを自動的に判断します。また
git pull
を実行すると、すべてのリモート参照が取得され、対応するリモートブランチに自動的にマージされます。
リポジトリをクローンすると、一般的には自動的に origin/master を追跡する master ブランチが作成されます。そのため
git push
と
git pull
は、他の引数なしでそのまま動作します。しかし、必要なら他の追跡ブランチを設定することもできます。オリジンのブランチを追跡せず、master ブランチも追跡しないようなブランチです。単純な例としては、先ほど見たように
git checkout -b [branch] [remotename]/[branch]
. Git バージョン 1.6.2 以降では
--track
という略記があります。
$ git checkout --track origin/serverfix
Branch serverfix set up to track remote branch refs/remotes/origin/serverfix.
Switched to a new branch "serverfix"
リモートブランチと異なる名前のローカルブランチを設定するには、最初のバージョンを別のローカルブランチ名で簡単に使用することができます。
$ git checkout -b sf origin/serverfix
Branch sf set up to track remote branch refs/remotes/origin/serverfix.
Switched to a new branch "sf"
さて、あなたのローカルブランチ
sf
に自動的にプッシュし、そこからプルします。
origin/serverfix
.
BONUS:おまけ
git status
インフォ
トラッキングブランチ付き
git status
は、追跡中のブランチからどれくらい遅れているのかを教えてくれます。まだ変更をプッシュしていないことを忘れないようにするために便利です! これは、次のようなものです。
$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
または
$ git status
On branch dev
Your branch and 'origin/dev' have diverged,
and have 3 and 1 different commits each, respectively.
(use "git pull" to merge the remote branch into yours)
関連
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git のリモートブランチを作成する方法を教えてください。
-
[解決済み] Git で現在のブランチ名を取得するには?
-
[解決済み] Git で単一のブランチをクローンする方法を教えてください。
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】ローカルリポジトリのブランチをリセットして、リモートリポジトリのHEADと同じにする
-
[解決済み】既存のGitブランチをリモートブランチに追従させる?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「オリジン/マスターへのプッシュが拒否されました」というエラーが常に発生するのはなぜですか?
-
[解決済み】gpgがデータの署名に失敗した fatal: failed to write commit object [Git 2.10.0].
-
[解決済み] TortoiseGitで「git did not exit cleanly (exit code 128)」というエラーを解決するには?[クローズド]
-
[解決済み] Gitのフォルダ構造で変更・追加されたファイルのみをエクスポートする機能
-
[解決済み] ssh-keygen' は内部コマンドまたは外部コマンドとして認識されません。
-
[解決済み] Gitのエラー「object file ... is empty」はどうすれば直せますか?
-
[解決済み] "fatal: This operation must be run in work tree." というメッセージが表示されるのはなぜですか?
-
[解決済み] git fetch と git fetch origin master はブランチの追跡で異なる効果を発揮する
-
[解決済み] "ダウンストリーム "と "アップストリーム "の定義
-
[解決済み】指定したコミットを含むブランチを一覧表示するには?