Gitの操作


Gitは無料でオープンソースのバージョン管理システムとして知られています.これは多くの開発者がスピードアップし、簡単に自分の仕事を調整し、これを達成するために多くの方法を提供しています.人々がどのようにgitを使うかについて、いろいろな方法とアプローチがあります.このポストでは、あなた自身のプロジェクトのためにGitを使用する簡単な、しかし、効果的な方法を示すか、OSS貢献をしたいならば、私は試みます.

プロジェクトの分岐


最初のステップは、あなたが働きたいプロジェクトのフォーク(コピー)を作成することです.あなた自身のコピーで動作することができますし、メインリポジトリの間違いを心配する必要はありませんこの方法です.作業したいプロジェクトのGitHubページに移動し、右上のフォークボタンをクリックします.

主プロジェクトのフォークを正常に作成しました.あなたのフォークは、現在位置します:https://github.com/<your_github_username>/<your_project_name>

リポジトリのクローン


プロジェクトをフォークした後、あなたのローカルマシンにフォーク(コピー)をクローンすることです.端末の種類git clone <url_of_your_cloned_repo>.gitクローンされたレポのURLは次のようになります.https://github.com/<your_github_username>/<your_project_name>プロジェクトをローカルマシンにクローンした後、プロジェクトフォルダにアクセスできます.cd <your_project_name>現在のブランチをチェックします.git branchデフォルトでは、プロジェクトのメインブランチです.マスターブランチに変更を加えてはいけません.メインリポジトリから最新のバージョンを使用して現在のプロジェクトを更新するだけではなりません.

仕事を始める


さて、プロジェクトで作業を開始したいので、どうすればよいですか?
まず最初に、あなたのマスターブランチから新しいブランチを作成します.この方法では、プロジェクトの現在の(マスター)バージョンから新しい作業を論理的に分離し、後でマスターブランチで可能なマージ問題を回避することになります.
次のような新しい分岐を作成します.git checkout -b <name_of_your_working_branch>これは、あなたの現在の(この場合マスターである)枝から新しいブランチをつくります.基本的にあなたのマスターブランチのコピーです.

リモートリポジトリの追加


新しいブランチで作業を開始し、誰かがあなたのプロジェクトをフォークしたメインリポジトリを更新すると想像してください.これは問題になります.
  • 他の誰かが既にあなたが変更していたファイルを行うか、変更したい仕事を終えた.これは競合に繋がるので、最終的に解決することができますが、競合を解決しながらアプリケーション全体を壊す可能性があるので、この点に到達しないほうが簡単です.
  • 他の誰かがあなたの変更を時代遅れにするアプリケーションの新しいバージョンや宝石バージョンを更新しました.
  • あなたが定期的にあなたの倉庫を更新しないならば、これらはちょうど起こる2つの問題です.まず最初に必要なのはリモートリポジトリを追加することです.git remote add <name_of_remote> <url_of_the_main_repository>.gitリモートの名前は、リモートとして既に追加されていない任意の名前です.プロジェクトのクローンを作成するには、デフォルトで元のリポジトリが追加されます.git remote -v結果は次のようになります.
      origin    https://github.com/<your_github_username>/<your_project_name> (fetch)
      origin    https://github.com/<your_github_username>/<your_project_name> (push)
    
    通常、使用される主なリポジトリの名前は上流です.したがって、上記のGitリモートコマンドを入力した後に、リモート名として上流のコマンドを追加してください.
      origin    https://github.com/<your_github_username>/<your_project_name> (fetch)
      origin    https://github.com/<your_github_username>/<your_project_name> (push)
      upstream  https://github.com/<the_original_repository>/<your_project_name> (fetch)
      upstream  https://github.com/<the_original_repository>/<your_project_name> (push)
    
    今、あなたのフォーク(起源)とメイン(上流)のリポジトリが追加されているので、いくつかの作業を開始することができます.

    変更の保存


    いくつかの作業を終えたら、以下のように変更されたファイルをすべてチェックできます.git status変更を押す手順の最初の手順は、コミットのすべてのファイルを追加することです.git add -Aorgit add .これらの2つの違いは、- aオプションがステージング状態(コミットの場合)にすべての変更を加えることです.ドット()オプションはすべて削除されたファイルを追加します.
    次に、すべてのファイルを追加した後、それらをコミットすることができます.コミットは、ローカルリポジトリに変更を保存することです.別の方法で行うことができます.git commitこれにより、テキストエディタが開き、コミットのタイトルと変更内容が追加できます.git commit -m "<your_commit_message>"この方法では、テキストエディタでそれらを入力することなく、同じ行にコミットの詳細を追加できます.

    変更のマージまたはリベースメント変更


    GitHubのローカルリポジトリに新しく作成したコミットをプッシュする前に、リポジトリをメインリポジトリに同期させるのに最適なタイミングです.最初に、あなたのマスターブランチに戻る必要があります.なぜなら、以前に述べたように、我々はプロジェクトを最新バージョン(COMMIT)に更新するために使用します.git checkout master今あなたのマスターブランチに切り替えて、メインリポジトリの最新バージョンで更新する必要があります.このため、FETCHコマンドを使用できます.git fetch upstream masterまたはプルコマンドgit pull upstream masterここでの違いは、FETCHコマンドが上流のリポジトリからの変更を取得しますが、ローカルリポジトリには適用されません.次のマージまたはRebaseコマンドを実行する必要があります(次の節で説明します).
    プルコマンドは両方を行い、変更を受け取り、変更をローカルリポジトリに適用します.
    注意すべき重要なのは、3番目のパラメータ(上流)がフェッチするリモートリポジトリの名前です.ローカルリポジトリをメインリポジトリに同期させる必要があるので、上流を選択します.次のステップは、作業中のブランチに戻ることです.git checkout <name_of_your_working_branch>残っているのは、現在の作業ブランチでマスターブランチ(現在のメインリポジトリの最新バージョンと同期した)から新しい変更を適用することです.これを行うには2つの方法があります.

    合併

    git merge master最初の方法は、メインのリポジトリからすべてのコミットを使用してコミットをマージします.

    C 4はあなたが作成したコミットです.C 3はメインリポジトリの新しいコミットです.マージコマンドを実行すると、C 3とC 4をコミットする新しいマージコミット(C 5)を作成します.

    再舗装

    git rebase master第2の方法は、メインリポジトリからのコミットを再利用することで、マージと同じように新しいマージコミットを作成しませんが、同じ数をコミットします(すべてのメインリポジトリ+新しいコミットからコミットします).次のイメージは、どのように見えるかを示します.

    C 4はあなたが作成したコミットです.あなたのコミットは、メインリポジトリ(コミットC 3)からの新しい変更に適用されています.
    問題は-どちらを使用するか?あなたがコミット履歴をきれいにすることができるので、あなたがプロジェクトで単独で働いているならば、Rebaseを使うことを勧められます.あなたが他の人々とプロジェクトに取り組んでいるならば、あなたがRebaseを使用するならば、それが矛盾につながるかもしれません.最終的に、それは個人的な好みやプロジェクトの管理者がどのようにプロジェクトを見たいかということになります.

    変化の推進


    主なリポジトリからの変更を使用してコミットを正常に統合または再利用するようになりました.私たちのフォークされたリモートリポジトリがオリジンという名前であることを忘れないでください.git push origin <name_of_your_working_branch>Githubであなたのフォークしたリモートリポジトリに変更を正常にプッシュしました.
    最後のステップは、あなたの仕事を適用するために新しいリモートリポジトリに新しいプル要求を作成することです.そのためには、Githubのforkしたリポジトリに移動する必要があります.https://github.com/<your_github_username>/<your_project_name>次のような新しいメッセージが表示されます.

    比較とプル要求ボタンをクリックすると、リポジトリ(ヘッドリポジトリ)とメインリポジトリブランチ(ベースリポジトリ)を選択しなければならない新しいプロンプトが開きます(この場合は、ヘッドリポジトリと“マスター”ベースのリポジトリについては“nameHellow OcLorning WorkingCount支店”).次の画像は例です.

    あなたがしたい場合は、プルリクエストのタイトルと説明を編集することができます.あなたが満足した後、あなたはプル要求を作成するためにCreateプル要求をクリックするだけでなければなりません.

    プル要求を作成した後、プロジェクトの管理者はコードのレビューを行い、変更する必要があるかどうかを判断します.

    概要


    この記事では、Gitでの作業を開始する方法、リポジトリを作成する方法、変更を加え、Githubにプッシュしてプルリクエストを作成する方法を説明しました.Gitで動作する方法をよりよく理解する必要があります.うまくいけば、それはあなたのコーディング体験を向上させるでしょう.