[解決済み] Gitにおいて、origin/masterとorigin masterの違いは何ですか?
質問内容
知っています。 起源 はリモートリポジトリの用語であり マスター はそこのブランチです。
私はここで意図的に "コンテキスト" を省略しており、答えはコンテキストに依存しないことを望んでいます。では、git のコマンドラインでは、次のような違いがあるのでしょうか。 オリジン/マスター と オリジンマスタ . を使うべきかを理解するための曖昧でない方法はありますか? オリジン/マスター を使用する必要があります。 オリジンマスタ ?
解決方法は?
( 注意 この質問が投稿された当初は、"master" が Git のブランチのデフォルト名でした。現在は "main" がデフォルト名となっているので、この回答は "main" を使うように更新しました。この方が、Git を初めて使う人にとってより自然であることを願っています)。
ここには、実は3つのものがあるんです。
origin main
は2つの別々のものであり
origin/main
は1つのものです。 合計3つのもの
2つのブランチ
-
main
はローカルブランチ -
origin/main
はリモート追跡ブランチ(これは ローカルコピー リモートの "origin" という名前のブランチの "main" という名前のブランチの)
リモートは1つ。
-
origin
はリモート
origin/mainはリモートですか?
は
origin/main
ブランチはローカルです! から取得するときはいつでも
origin
,
origin/main
が更新されます。しかし
origin/main
が古くなることもあり得ます。
main
にはもう存在しない。
origin
. を使用することができます。
--prune
オプション (
-p
) と共に
git fetch
を使用すると、追跡しているブランチが削除された場合、リモート追跡ブランチを自動的に削除することができます。
その
origin/main
ブランチは
ではなく
への参照またはポインタです。
main
のブランチです。
origin
. ローカルコピーです。
例:2ステップでプル
から
origin/main
はブランチなので、それをマージすることができます。 ここでは、2つのステップでプルを行います。
ステップ1:フェッチ
main
をリモート
origin
. その
main
の分岐を
origin
が取得され、ローカルコピーの名前は
origin/main
.
git fetch origin main
そして
origin/main
を
main
.
git merge origin/main
そして、新しい変更を
main
に戻す。
origin
:
git push origin main
その他の例
名前で複数のブランチを取得することができます...
git fetch origin main stable oldstable
複数のブランチをマージすることができます...
git merge origin/main hotfix-2275 hotfix-2276 hotfix-2290
別の名前にすることはできますか?
ローカルブランチの名前は必要ありません。
main
ということです。リモートブランチと同じ名前である必要はないのです! たとえば、自分のブランチに次のような名前をつけるとしましょう。
alice
を追跡させることができます。
origin/main
:
簡単にできるんですよ。
git checkout -b alice --track origin/main
ローカルブランチの名前が
alice
という名前ですが、リモートブランチは
main
であり、ローカルコピーは
origin/main
. これなら全然OK! ちょっとわかりにくいかもしれませんが、もしかしたら、すでに
異なる
という名前のブランチがあります。
main
で、別の変更を行うために別のブランチに切り替える必要があります。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] 新しいローカルブランチをリモートの Git リポジトリにプッシュし、それを追跡するにはどうすればよいのでしょうか?
-
[解決済み] Git でブランチからコミットを削除する
-
[解決済み] Git のリモートブランチを作成する方法を教えてください。
-
[解決済み] git add -A」と「git add .」の違い。
-
[解決済み] 現在のGitブランチをmasterブランチにする
-
[解決済み] リモートにないトラッキングブランチを削除
-
[解決済み] detached HEADとmaster/originの連携はどうすればいいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 現在のブランチのトラッキング情報がありません。
-
[解決済み】Git, fatal: リモートエンドが予期せずハングアップしました。
-
[解決済み】git-mergeの-dry-runオプションはありますか?
-
[解決済み] git が「Pull is not possible because you have unmerged files」と表示するのはなぜですか?
-
[解決済み] git rebase: "error: cannot stat 'file': パーミッションが拒否されました"
-
[解決済み] git initを2回実行すると、リポジトリが初期化されますか?それとも既存のリポジトリを再初期化しますか?
-
[解決済み] git リモートリポジトリには、ローカルブランチにマージされていないコミットが含まれています。
-
[解決済み] Gitによるhotfixブランチのfeatureブランチへのマージ
-
[解決済み] Git で単一のブランチをクローンする方法を教えてください。
-
[解決済み】Git のブランチング:master と origin/master と remotes/origin/master の比較