ホームページ  >  記事  >  開発ツール  >  gitのプッシュとプルの違いは何ですか

gitのプッシュとプルの違いは何ですか

WBOY
WBOYオリジナル
2022-01-07 16:26:4217495ブラウズ

git のプッシュとプルの違い: 1. 「git Push」コマンドは、ローカル ライブラリの最新情報をリモート ライブラリに送信し、ローカル ブランチの更新をリモート ホストにプッシュするために使用されます。 ; 2. " 「git pull」コマンドは、最新バージョンをリモートからローカルライブラリに取得するためのもので、別のリポジトリやローカルブランチから取得して統合するために使用されます。

gitのプッシュとプルの違いは何ですか

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

git のプッシュとプルの違いは何ですか

git プッシュと git pull は、ブランチをプッシュ/プルする 1 対の git コマンドです。 。

git Push は、ローカルの対応するブランチを使用して、対応するリモート ブランチを更新します

$ git push <远程主机名> <本地分支名>:<远程分支名>

注: コマンド内のローカル ブランチは、リモート エンド: リモート ブランチはプッシュのターゲット ブランチを指します。つまり、ローカル ブランチがリモート ブランチにマージされます。

リモート ブランチ名が省略された場合は、ローカル ブランチが「追跡関係」を持つリモート ブランチにプッシュされることを意味します (通常、両方とも同じ名前を持ちます)。存在しない場合は作成されます。

$ git push origin master

上記のコマンドは、ローカルの master ブランチがオリジン ホストの master ブランチにプッシュされることを示しています。後者が存在しない場合は作成されます。

origin はリモート工場のアドレスです。

ローカル ブランチ名が省略された場合は、空のローカル ブランチをリモート ブランチにプッシュするのと同じなので、指定されたリモート ブランチを削除することを意味します。このコマンドはリモート マスター ブランチを削除します。

$ git push origin :master
# 等同于
$ git push origin --delete master

上記のコマンドは、オリジン ホストの master ブランチを削除することを意味します。

現在のブランチとリモート ブランチの間に追跡関係がある (つまり、ブランチ名が同じ) 場合は、ローカル ブランチとリモート ブランチの両方を省略できます。

$ git push origin

上記のコマンドは、現在のブランチが元のホストの対応するブランチにプッシュされることを示しています。

現在のブランチに追跡ブランチが 1 つだけある場合は、ホスト名を省略できます。

$ git push

現在のブランチに複数のホストとの追跡関係がある場合は、-u オプションを使用してデフォルトのホストを指定できるため、後でパラメーターを追加せずに git Push を使用できます。

$ git push -u origin master

上記のコマンドは、ローカルのマスター ブランチをオリジン ホストにプッシュし、オリジンをデフォルト ホストとして指定します。その後、パラメーターを追加せずに git Push を使用できます。

パラメータを指定せずに Git をプッシュすると、デフォルトでは現在のブランチのみがプッシュされます。これはシンプル モードと呼ばれます。さらに、対応するリモート ブランチを持つすべてのローカル ブランチをプッシュするマッチング メソッドもあります。 Git バージョン 2.0 より前は、デフォルトでマッチング方式が使用されていましたが、現在はデフォルトで単純方式に変更されています。この設定を変更したい場合は、git config コマンドを使用できます。

$ git config --global push.default matching
# 或者
$ git config --global push.default simple

もう 1 つの状況は、対応するリモート ブランチがあるかどうかに関係なく、すべてのローカル ブランチをリモート ホストにプッシュすることです。この場合は、-all オプションを使用する必要があります。

$ git push --all origin

上記のコマンドは、すべてのローカル ブランチがオリジン ホストにプッシュされることを示しています。

リモート ホストのバージョンがローカル バージョンより新しい場合、Git はプッシュ時にエラーを報告するため、リモート ホストにプッシュする前にローカルで git pull を実行して相違点をマージする必要があります。現時点でプッシュする必要がある場合は、--force オプションを使用できます。

$ git push --force origin

上記のコマンドでは –force オプションが使用されているため、リモート ホスト上で「非早送りマージ」が行われます。これを確実に実行する必要がある場合を除き、--force オプションの使用は避けてください。

最後に、-tags オプションを使用しない限り、git Push はタグをプッシュしません。

$ git push origin --tags

git pull は、他のファクトリ ライブラリまたは他のローカル ブランチを取得してマージします。

git pull 操作と git Push 操作の目的は同じですが、操作の目的は逆です。コマンドの形式は次のとおりです。

git pull <远程主机> <远程分支>:<本地分支>

例:

git pull origin master:my_test

上記のコマンドは、元のファクトリ ライブラリの master ブランチを取得し、それをローカルの my_test ブランチにマージします。

ローカル ブランチを省略した場合、ローカル ブランチは自動的に現在のブランチにマージされます。以下の通り:

git pull origin master

注: Github 上の優れたプロジェクトに参加したい場合は、一般的な例を以下に示します:

まず、Github アカウントが必要で、好きなものをフォークします興味のあるリポジトリ。

次の説明プロセスには 2 つのリモート マスター ブランチが含まれます。区別するために、フォークされたマスター ブランチをリモート A リポジトリと呼び、このフォークのブランチをリモート B リポジトリと呼びます

$git clone <远程Arepository> #克隆你fork出来的分支
$git remote add <远程Brepository标签> git@github.com:XXXX/ceph.git #添加远程Brepository标签
$git pull <远程B厂库标签> master:master  #从远程Brepository的master分支拉取最新objects合并到本地master分支
$git checkout YYYY #切换到要修改的分支上
$git branch develop; git checkout develop #在当前分支的基础上创建一个开发分支,并切换到该分支上,你将在该分支上coding
coding...... #在工作区coding
$git add .#将修改保存到索引区
$git commit -a #将修改提交到本地分区
$git push origin my_test:my_test #将本地分支my_test提交到远程A repository的my_test分支上

次に、my_test ブランチを、github Web インターフェイスで変更する必要があるリモート B リポジトリ ブランチにマージします。管理者によるレビューを待ちます。問題がある場合は、develop ブランチで変更を続け、commit –amend を実行して前のコミットに変更を加えます。メージャーで知る。

推奨学習: 「Git チュートリアル

以上がgitのプッシュとプルの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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