[解決済み] この "u "は具体的に何をするのですか?"git push -u origin master" と "git push origin master" の違い。
質問
gitを理解しようと頑張っているのですが、どうやら苦手意識があるようです。
から
kernel.org
について
git push
:
-u
-設定-アップストリーム
最新の状態にある、あるいはプッシュが成功したすべてのブランチに対して、引数なしの git-pull(1) やその他のコマンドで使用される上流 (追跡) 参照を追加します。詳しくは
branch.<name>.merge
を、git-config(1) に追加しました。
以下は
branch.<name>.merge
から
git config
:
branch.<name>.merge
と共に定義されます。
branch.<name>.remote
指定されたブランチの上流ブランチです。これは、git fetch/git pull にマージするブランチを指示します。また、git push にも影響を与えます (push.default を参照ください)。ブランチの場合<name>
これは、FETCH_HEAD でマージするためにマークされるデフォルトの refspec を git fetch に伝えるものです。この値は refspec のリモート部分と同様に扱われ、次のように指定したリモートから取得した ref と一致する必要があります。"branch.<name>.remote"
. このマージ情報は、git pull (これは最初に git fetch を呼び出します) がマージ用のデフォルトブランチを探すために使用されます。このオプションを指定しなかった場合、git pull はデフォルトで最初に取得した refspec をマージします。複数の値を指定すると、蛸壺マージになります。にマージするように git pull を設定したい場合は、次のようにします。<name>
をローカルリポジトリの別のブランチから指定することができます。branch.<name>.merge
を目的のブランチに設定し、特別な設定 . (ピリオド) を使ってbranch.<name>.remote
.
githubでリモートリポジトリのセットアップに成功し、最初のコミットをpushすることに成功しました。
git push -u origin master
そして、知らず知らずのうちに、2回目のコミットをリモートリポジトリにプッシュすることに成功しました。
git commit -m '[...]'
しかし、誤って、もう一度
origin
から
master
を、走らせました。
# note: no -u
git push origin master
どうだった?全く効果がなかったようです。元に戻せますか?
git push -u origin master
?
解決方法は?
鍵は "引数なしのgit-pull"です。を実行すると
git pull
ブランチから、ソースリモートやブランチを指定せずに、git は
branch.<name>.merge
を設定することで、どこからプルするのかがわかります。
git push -u
は、プッシュするブランチに対してこの情報を設定します。
違いを見るために、新しい空のブランチを使用してみましょう。
$ git checkout -b test
まず
-u
:
$ git push origin test
$ git pull
You asked me to pull without telling me which branch you
want to merge with, and 'branch.test.merge' in
your configuration file does not tell me, either. Please
specify which branch you want to use on the command line and
try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details.
If you often merge with the same branch, you may want to
use something like the following in your configuration file:
[branch "test"]
remote = <nickname>
merge = <remote-ref>
[remote "<nickname>"]
url = <url>
fetch = <refspec>
See git-config(1) for details.
ここで
-u
:
$ git push -u origin test
Branch test set up to track remote branch test from origin.
Everything up-to-date
$ git pull
Already up-to-date.
なお、トラッキング情報は、以下のように設定されています。
git pull
は、リモートやブランチを指定しなくても期待通りに動作します。
更新しました。 ボーナスのヒント
-
マークがコメントで触れているように、さらに
git pull
のデフォルトの動作にも影響します。git push
. を使う癖がついたら-u
を使用して、追跡するリモートブランチをキャプチャすることをお勧めします。push.default
の設定値をupstream
. -
git push -u <remote> HEAD
にある同名のブランチに現在のブランチをプッシュします。<remote>
(また、トラッキングを設定することでgit push
の後に)。
関連
-
[解決済み] fatal: bad revision "とはどういう意味ですか?
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] Git のリモートブランチを作成する方法を教えてください。
-
[解決済み] Git フェッチ リモートブランチ
-
[解決済み] リモートにないトラッキングブランチを削除
-
[解決済み] detached HEADとmaster/originの連携はどうすればいいですか?
-
[解決済み】ローカルの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のエラー。リモートリポジトリへの接続時に「Host Key Verification Failed」。
-
[解決済み】Gitマージで「すでに最新」と報告されるが、違いはある
-
[解決済み】ファイルのアンリンクに失敗しました。もう一度試してみるべきですか?
-
[解決済み】ERROR: Error cloning remote repo 'origin'.
-
[解決済み】Githubの認証に失敗した - ... GitHubはシェルアクセスを提供しない
-
[解決済み】「オリジン/マスターへのプッシュが拒否されました」というエラーが常に発生するのはなぜですか?
-
[解決済み] git リモートリポジトリには、ローカルブランチにマージされていないコミットが含まれています。
-
[解決済み] Git のリモートブランチを作成する方法を教えてください。
-
[解決済み】既存のGitブランチをリモートブランチに追従させる?
-
[解決済み】git push -uの意味は何ですか?