[解決済み] なぜ新しいブランチを明示的にプッシュする必要があるのですか?
2022-05-02 17:08:32
質問
の初心者です。
git
と練習しているところです。ローカルブランチを作成したのですが、その際に
git push
のブランチがリポジトリにアップロードされませんでした。実際にやってみないとわからない。
git push -u origin --all
.
これはなぜでしょうか?ブランチとは、デフォルトでプッシュされる新しい変更ではないのですか? なぜ二番目のコマンドを実行する必要があるのでしょうか?
解決方法は?
実際の理由は、新しいレポ(git init)で、そこに
はブランチがない
(但し
master
分岐が全くない、分岐がゼロ)
そのため、初めてプッシュする際に 空 上流レポ (一般的には 素 ) の場合、そのアップストリームリポには同名のブランチがありません。
そして
-
その
デフォルトのプッシュポリシーは '
matching
' (同じ名前のブランチをすべてプッシュし、存在しない場合は作成します)。 -
デフォルトのプッシュポリシー
が'
simple
' (現在のブランチのみをプッシュし、そのブランチに同じような名前の リモート追跡ブランチ を上流で実行します。 git 1.7.11以降 )
どちらの場合も、上流の空のレポにはブランチがないため。
- 一致する名前のブランチはまだありません。
- 上流のブランチが全くない(同名のブランチがあってもなくても!トラッキングがあってもなくても)。
つまり、あなたのローカル まず プッシュではわからない。
- プッシュ先
- 何をプッシュするか (リモート追跡ブランチとして記録されている、あるいは同名の上流ブランチが見つからないため)
を最低限行う必要があるわけです。
git push origin master
でも、そればかりしていると、あなた
-
は、上流の
master
ブランチを上流(今は空でないレポ)上に作成します: よろしい。 -
はしません。
記録
ローカルブランチの'
master
' を上流にプッシュする必要があります (origin
) 'master
' (上流ブランチ): だめです。
そのため、最初のプッシュでは、aを行うことが推奨されます。
git push -u origin master
これで記録されるのは
origin/master
として
リモートトラッキングブランチ
を自動的にプッシュし、次のプッシュで
master
から
origin/master
.
git checkout master
git push
そして、これもプッシュポリシーで動作する '
current
または'
upstream
'.
いずれの場合も、最初の
git push -u origin master
を実行すると、シンプルな git push で master を正しい上流ブランチにプッシュし続けることができます。
関連
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] 新しいローカルブランチをリモートの Git リポジトリにプッシュし、それを追跡するにはどうすればよいのでしょうか?
-
[解決済み] Git のリモートブランチを作成する方法を教えてください。
-
[解決済み] なぜ `--set-upstream` を常に実行する必要があるのですか?
-
[解決済み] リモートにないトラッキングブランチを削除
-
[解決済み] Git のブランチの一覧を最新のコミット順に表示するにはどうしたらよいですか?
-
[解決済み] detached HEADとmaster/originの連携はどうすればいいですか?
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】git error: failed to push some refs to remote
-
[解決済み] Git pull - マージする前に移動または削除してください。
-
[解決済み] なぜ `--set-upstream` を常に実行する必要があるのですか?
-
[解決済み] "ダウンストリーム "と "アップストリーム "の定義
-
[解決済み] Git でリモートブランチの追跡を止めるには?
-
[解決済み] fatal: 現在のブランチマスターには上流のブランチがありません。
-
[解決済み】'-set-upstream'は何をするのですか?
-
[解決済み】git checkout --track origin/branch と git checkout -b branch origin/branch の違い。
-
[解決済み】なぜ「git push --set-upstream origin <branch>」をしなければならないのでしょうか?
-
[解決済み] 裸のGitリポジトリにプッシュするには?