ホームページ  >  記事  >  開発ツール  >  git での Push -u の意味は何ですか

git での Push -u の意味は何ですか

WBOY
WBOYオリジナル
2022-07-01 10:36:5017810ブラウズ

git では、「push -u」は、ローカル ブランチのバージョンをリモート マージにアップロードし、プッシュのデフォルト値をリモート ブランチに記録することを意味します。「-u」パラメータを追加すると、次のことを意味します。 time リモート ブランチをプッシュし続ける場合、push コマンドは「git Push」と省略できます。

git での Push -u の意味は何ですか

この記事の動作環境: Windows 10 システム、Git バージョン 2.30.0、Dell G3 コンピューター。

git における Push -u の意味

git Push コマンドは、ローカル ブランチ バージョンをリモートにアップロードしてマージするために使用されます。

通常、ローカル ウェアハウスをリモート ウェアハウスにプッシュする場合は、git Push コマンドが使用されます。初心者として、インターネットでいくつかのチュートリアルを見ましたが、その中には git プッシュ時に -u パラメーターを指定するものと、そうでないものがあります。実際のプッシュ結果に違いはありません。 -u パラメータが何をするのか知りたいのですが?

しばらく検索した後、皆さんの説明と分析の一部を要約して記録しました。

パラメータ分析:

まず、git Push については、次の記述があります:

-u

-set -upstream

最新のブランチまたは正常にプッシュされたすべてのブランチに対して、引数なしの git-pull(1) およびその他のコマンドで使用されるアップストリーム (追跡) 参照を追加します。 branch.< ;name>.merge in git-config(1).

この説明では、-u パラメータが次の変数

## に関連していることがわかります。 ##branch.8a11bc632ea32a57b3e3693c7987c420.merge

branch.8a11bc632ea32a57b3e3693c7987c420.merge と Branch.8a11bc632ea32a57b3e3693c7987c420.remote を組み合わせて、指定されたブランチの上流ブランチを定義します。これは、git fetch/git pull にどのブランチをマージするかを指示し、git Push にも影響を与える可能性があります。

そして、アップストリームとは、GitHub リポジトリなど、他のユーザーがプルするメイン リポジトリを指します。 -u オプションは自動的にアップストリームを設定し、リポジトリを中央リポジトリにリンクします。こうすることで、将来的に Git はどこにプッシュしたいのか、どこからプルしたいのかを「認識」できるようになり、パラメーターなしで git pull または git Push を使用できるようになります。

ソース リモートまたはブランチを指定せずにブランチから git pull する場合、git は、branch.8a11bc632ea32a57b3e3693c7987c420.merge 設定を調べて、どこからプルするかを判断します。そして、プッシュするブランチにこの情報を設定するのは git Push -u コマンドです。

簡単に言うと、

-u パラメータを使用することは、実際にはプッシュのデフォルト値をリモート ブランチに記録することと同じなので、次回はリモート ブランチのプッシュを続行する必要があります。push コマンドは次のことができます。 git Push と略されます。

表示例:

この点を説明するための例を以下に示します。

andy@AndyMacBookPro:/usr/local/github/andy/php-examples$ git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> test

これは、事前に -u パラメーターを使用しておらず、後でプルするブランチ パラメーターを省略した場合の結果です。現在のブランチにトラックがないためプルします。したがって、どこからプルするかがわかりません。これが、トレース ブランチを指定する -u パラメーターの意味です。

実際には、-u を指定した後、.git/config に移動して GIT 構成ファイルを表示できます。以下にブランチ "test" のレコードが表示されます:

[branch "master"] 
 remote = origin
merge = refs/heads/master 
[branch "test"]
remote = origin
merge = refs/heads/test

Likeこの git のみ、現在のテストでリモートとマージの情報を知ることができます。git プッシュ時に -u パラメーターを指定しない場合、構成にはブランチ「テスト」項目は存在しません。

 [branch "master"]
    remote = origin
    merge = refs/heads/master

設定手順。これは Git に 2 つのことを伝えます:

master ブランチにいる場合、デフォルトのリモートはオリジンです。

git pullmaster ブランチ (リモートとブランチが指定されていない) で使用する場合は、デフォルトのリモート (ソース) を使用し、リモートの master ブランチからの変更をマージします。

構成の変更

手動で .git/config に移動して GIT 構成ファイルの内容を変更することも、コマンド ラインを使用してこれらのオプションを設定することもできます。

 $ git config branch.master.remote origin
 $ git config branch.master.merge refs/heads/master

コマンドを使用して構成すると、特定のエラー修正機能が備わります。たとえば、存在しないブランチを入力したか、git Remote add 操作を実行しませんでした。新しい git では、 git Branch --set-upstream-to=origin/master master を使用してください。

実際、 -u パラメータを追加してコマンド git Push -u Origin master を実行することは、次のコマンドを実行することと同じです。

git プッシュ オリジン マスターと

git ブランチ --set-upstream マスター オリジン/マスター。

したがって、コードをリモート ブランチにプッシュしていて、リモート ブランチへのプッシュを継続したい場合は、プッシュ コマンドに -u パラメーターを追加して、後続のプッシュ コマンド入力を簡素化できます。

推奨学習:「

Git チュートリアル

以上がgit での Push -u の意味は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。