Git リモート ウェアハウス
Git には SVN のような中央サーバーがありません。
コードを共有したり、Git を通じて他の開発者と共同作業したりする場合、現在使用している Git コマンドはすべてローカルで実行されます。 次に、他の開発者が接続できるサーバーにデータを配置する必要があります。
この例では、リモート ウェアハウスとして Github を使用しています。最初に Github の簡潔なチュートリアルを読むことができます。
リモート リポジトリを追加する
新しいリモート リポジトリを追加するには、後で参照できるように単純な名前を指定できます。コマンドの形式は次のとおりです。
git remote add [shortname] [url]
この例では、リモート リポジトリとして Github を使用します。 Github をお持ちの場合は、公式 Web サイト https://github.com/ に登録できます。
ローカル Git リポジトリと GitHub リポジトリ間の送信は SSH 経由で暗号化されるため、検証情報を構成する必要があります:
次のコマンドを使用して SSH キーを生成します:
$ ssh-keygen -t rsa -C "youremail@example.com"
の後に your_email@youremail を入力します。 com github に登録したメール アドレスに変更します。パスを確認してパスワードを入力するよう求められますので、デフォルトのものを使用して Enter キーを押します。成功すると、~/ の下に .ssh フォルダーが生成されます。そのフォルダーに入り、id_rsa.pub を開いて、その中にあるキーをコピーします。
github に戻り、アカウント設定に入り、左側で SSH キーを選択し、SSH キーを追加し、好きなようにタイトルを入力し、コンピューターで生成されたキーを貼り付けます。
成功したかどうかを確認するには、次のコマンドを入力します:
$ ssh -T git@github.com Hi tianqixin! You've successfully authenticated, but GitHub does not provide shell access.
次のコマンドは、Github に正常に接続したことを示します。
ログイン後、以下に示すように「新しいリポジトリ」をクリックします。
次に、リポジトリ名にw3cschool.cc (リモートウェアハウス名)を入力します。 他のデフォルト設定をそのままにして、「リポジトリの作成」ボタンをクリックすると、新しい Git リポジトリが正常に作成されます:
作成が成功すると、次の情報が表示されます:
上記の情報は、クローンを作成できることを示しています。このリポジトリ ウェアハウスから新しいリポジトリを作成する場合、ローカル ウェアハウスの内容を GitHub ウェアハウスにプッシュすることもできます。
ここで、GitHub のプロンプトに従ってローカル リポジトリでコマンドを実行します:
$ ls README w3cschoolphp中文网测试.txt test.txt $ git remote add origin git@github.com:tianqixin/w3cschool.cc.git $ git push -u origin master Counting objects: 21, done. Delta compression using up to 4 threads. Compressing objects: 100% (15/15), done. Writing objects: 100% (21/21), 1.73 KiB | 0 bytes/s, done. Total 21 (delta 4), reused 0 (delta 0) To git@github.com:tianqixin/w3cschool.cc.git * [new branch] master -> master Branch master set up to track remote branch master from origin.
Github のユーザー名が異なるため、私が提供したコマンドに従ってではなく、Github 上で新しいリポジトリを正常に作成した場所に従って次のコマンドをコピーしてください。違いますし、倉庫の名前も違います。
次に、Github によって作成されたリポジトリに戻り、ファイルが Github にアップロードされたことがわかります:
現在のリモート リポジトリを表示します
現在設定されているリモート リポジトリを確認するには、次のコマンドを使用できます:
git remote
$ git remote origin $ git remote -v origin git@github.com:tianqixin/w3cschool.cc.git (fetch) origin git@github.com:tianqixin/w3cschool.cc.git (push)
-v パラメータを追加すると、各エイリアスの実際のリンク アドレスも確認できます。
リモート リポジトリの抽出
Git には、リモート リポジトリから更新を抽出する 2 つのコマンドがあります。
1. リモート ウェアハウスから新しいブランチとデータをダウンロードします:
git fetch
このコマンドを実行した後、リモート ブランチから自分のブランチに git merge を実行する必要があります。
2. リモート リポジトリからデータを抽出し、現在のブランチにマージしてみます。
git pull
このコマンドは、git fetch に続いて git merge を実行して、リモート ブランチを現在のブランチに転送します。
リモート ウェアハウスを構成し、更新されたデータをフェッチしたい場合は、まず git fetch [alias] を実行します。 自分が持っていないデータを取得するように Git に指示し、git merge [alias]/[branch] を実行して、サーバー上の更新を (この時点で誰かがサーバーにプッシュしたと仮定して) にマージします。現在のブランチ。
次に、Github 上の「w3cschoolphp Chinese network test.txt」をクリックし、オンラインで修正します。次に、ローカルで更新および変更します。
$ git fetch origin Warning: Permanently added the RSA host key for IP address '192.30.252.128' to the list of known hosts. remote: Counting objects: 3, done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), done. From github.com:tianqixin/w3cschool.cc 7d2081c..f5f3dd5 master -> origin/master
上記の情報「7d2081c..f5f3dd5 master ->origin/master」は、次のコマンドを使用して更新をローカルに同期できることを示しています:
$ git merge origin/master Updating 7d2081c..f5f3dd5 Fast-forward "w3cschool074107651703653075.txt" | 1 + 1 file changed, 1 insertion(+)
リモートにプッシュします。ウェアハウス
新しいブランチとデータをリモート ウェアハウスにプッシュするコマンド:
git push [alias] [branch]
上記のコマンドは、[branch] ブランチを [alias] リモート ウェアハウスの [branch] ブランチにプッシュします。例は次のとおりです。
$ git merge origin/master Updating 7d2081c..f5f3dd5 Fast-forward "w3cschool074107651703653075.txt" | 1 + 1 file changed, 1 insertion(+) bogon:w3cschoolcc tianqixin$ vim w3cschoolphp中文网测试.txt bogon:w3cschoolcc tianqixin$ git push origin master Everything up-to-date
リモート リポジトリを削除する
リモート リポジトリを削除するには、次のコマンドを使用できます:
git remote rm [别名]
$ git remote -v origin git@github.com:tianqixin/w3cschool.cc.git (fetch) origin git@github.com:tianqixin/w3cschool.cc.git (push) $ git remote add origin2 git@github.com:tianqixin/w3cschool.cc.git $ git remote -v origin git@github.com:tianqixin/w3cschool.cc.git (fetch) origin git@github.com:tianqixin/w3cschool.cc.git (push) origin2 git@github.com:tianqixin/w3cschool.cc.git (fetch) origin2 git@github.com:tianqixin/w3cschool.cc.git (push) $ git remote rm origin2 $ git remote -v origin git@github.com:tianqixin/w3cschool.cc.git (fetch) origin git@github.com:tianqixin/w3cschool.cc.git (push)