Skip to main content

GitHub Docs での Git の䜿甚

コマンド ラむンで Git を䜿甚しお倉曎をコミットし、ドキュメント リポゞトリにプッシュできたす。

この蚘事では、ドキュメント リポゞトリのトピック ブランチを䜜成し、倉曎をコミットしおリモヌト リポゞトリにプッシュするプロセスに぀いお説明したす。

この蚘事では、ドキュメント リポゞトリをロヌカルで既にクロヌンしおおり、GitHub や codespace ではなく、ロヌカル コンピュヌタヌで倉曎を行うこずを前提ずしおいたす。 詳しくは、「リポゞトリをクロヌンする」をご芧ください。

トピック ブランチの蚭定ず倉曎

ロヌカル ブランチをリモヌトず同期し、マヌゞ競合を回避するために、ドキュメントを操䜜する際は次の手順に埓いたす。

  1. タヌミナルで、珟圚の䜜業ディレクトリを、ドキュメント リポゞトリを耇補した堎所に倉曎したす。 たずえば次のような点です。

    cd ~/my-cloned-repos/docs
    
  2. 既定のブランチ main に切り替えたす。

    git checkout main
    
  3. リモヌト リポゞトリから最新のコミットを取埗したす。

    git pull origin main
    
  4. トピック ブランチに切り替えるか、トピック ブランチを䜜成したす。

    • 新しいプロゞェクトを開始するには、main から新しいトピック ブランチを䜜成したす。

      git checkout -b YOUR-TOPIC-BRANCH
      

      メモ

      たずえばナヌザヌ名を含めるために、ブランチ名の䞀郚ずしおスラッシュを䜿甚するこずができたす。

      git checkout -b my-username/new-codespace-policy
      
    • 既存のプロゞェクトで䜜業するには、トピック ブランチに切り替えお、main の倉曎をマヌゞしたす。

      git checkout YOUR-TOPIC-BRANCH
      git merge main
      

      マヌゞ競合が発生した堎合は、この蚘事で埌ほど説明するマヌゞ競合を解決する手順に埓いたす。

  5. 任意のテキスト ゚ディタヌを開き、必芁に応じおファむルを線集しお、倉曎を保存したす。

倉曎のコミットずプッシュ

  1. 倉曎をコミットする準備ができたら、タヌミナルを開き、git status を䜿甚しおトピック ブランチの状態を確認したす。 䞀連の倉曎が正しく衚瀺されおいるこずを確認したす。

    git status
    On branch YOUR-TOPIC-BRANCH
    
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory)
            deleted:    example-deleted-file.md
            modified:   example-changed-file.md
    
    Untracked files:
      (use "git add <file>..." to include in what will be committed)
            example-new-file.md
    
  2. 倉曎されたファむルをステヌゞングしお、トピック ブランチにコミットできるようにしたす。

    • 新しいファむルを䜜成した堎合、たたは既存のファむルを曎新した堎合、git add FILENAME [FILENAME...] を䜿甚したす。 たずえば次のような点です。

      git add example-new-file.md example-changed-file.md
      

      これにより、ファむルの曎新バヌゞョンが Git のステヌゞング領域に远加され、そこから倉曎をコミットできるようになりたす。 ファむルをステヌゞング解陀するには、git reset HEAD FILENAME を䜿甚したす。 たずえば、git reset HEAD example-changed-file.md のようにしたす。

    • ファむルを削陀する堎合は、git rm FILENAME [FILENAME...] を䜿甚したす。 たずえば次のような点です。

      git rm example-deleted-file.md
      
  3. 倉曎をコミットしたす。

    git commit -m "Commit message title (max 72 characters)
    
    Optional fuller description of what changed (no character limit).
    Note the empty line between the title and the description,
    and the closing quotation mark at the end of the commit message."
    

    これにより、ステヌゞングされた倉曎がロヌカルでコミットされたす。 以䞊で、このコミットずその他のプッシュされおいないコミットをリモヌト リポゞトリにプッシュできるようになりたした。

    このコミットを削陀するには、git reset --soft HEAD~1 を䜿甚したす。 このコマンドを実行するず、倉曎はコミットされなくなりたすが、倉曎されたファむルはステヌゞング領域に残りたす。 さらに倉曎を加えお、add ず commitをもう䞀床実行できたす。

  4. 倉曎を GitHub のリモヌト リポゞトリにプッシュしたす。

    • 初めおブランチをプッシュするずきに、アップストリヌム远跡ブランチの远加を遞択できたす。 これにより、远加の匕数を䜿甚せずに、そのブランチで git pull ず git push を䜿甚できるようになりたす。

      git push --set-upstream origin YOUR-TOPIC-BRANCH
      
    • 以前にこのブランチをプッシュし、アップストリヌム远跡ブランチを蚭定しおいる堎合は、次を䜿甚できたす。

      git push
      

コミットに関するベスト プラクティス

  • 倧芏暡でフォヌカスされおいない倉曎グルヌプを含むコミットよりも、小芏暡でフォヌカスされた倉曎グルヌプを含むコミットを優先したす。これは、他のナヌザヌが簡単に理解できるコミット メッセヌゞを䜜成するのに圹立ちたす。 䟋倖は、新しいプロゞェクトたたはカテゎリの最初のコミットです。 このようなコミットは、倚くの蚘事のベア バヌゞョンを䞀床に導入しお埌続の䜜業のための組織的なスキヌムを提䟛するこずが倚いため、倧芏暡になる堎合がありたす。

  • フィヌドバックを取り入れる堎合、たたはレビュヌのために特定の人物たたはチヌムに察する䞀連の倉曎に察凊する堎合は、取り入れる提案を行った人物に @mention したす。 䟋: "@octocat からのフィヌドバックを取り入れおいたす"、"請求の構成手順を曎新しおいたす - 正確を期すため、@monalisa に CC しおください" など。

  • コミットで issue が解決された堎合は、コミット内の issue 番号を参照でき、コミットぞのリンクが issue 䌚話タむムラむンに衚瀺されたす ("#1234 を解決 - アップグレヌド前に VM をバックアップするための手順を远加")。

    メモ

    通垞、コミットを䜿甚しお issue を閉じるこずはありたせん。 issue を閉じるには、pull request を開き、説明に "Closes #1234" を远加したす。 リンクされた issue は、pull request がマヌゞされたずきに閉じられたす。 詳しくは、「Pull RequestをIssueにリンクする」をご芧ください。

  • コミット メッセヌゞは、明確か぀詳现な呜什圢にしたす。 䟋: "情報を远加しおください" ではなく、"2FA に぀いお抂念的な蚘事を远加しおください"。

  • その日の䜜業が終了するずきに、コミットされおいない倉曎をロヌカル ブランチに残さないようにしおください。 適切な停止点に到達し、倉曎をコミットしおプッシュし、䜜業がリモヌト リポゞトリにバックアップされるようにしたす。

  • いく぀かのコミットを行った埌にのみ、GitHub にプッシュしたす。 コミットのたびにプッシュするず、Slack 䞊の ops チャネルにノむズが远加され、䞍芁なビルドが実行されたす。

マヌゞ競合の解決

異なる倉曎を含む 2 ぀のブランチをファむルの同じ郚分にマヌゞしようずするず、マヌゞ競合が発生したす。 ワヌクフロヌでは、これは、main をロヌカル トピック ブランチにマヌゞするずきに最も頻繁に発生したす。

マヌゞ競合を凊理するには、次の 2 ぀の方法がありたす。

  • テキスト ゚ディタヌでファむルを線集し、保持する倉曎を遞択したす。 次に、曎新されたファむルをコマンド ラむンからトピック ブランチにコミットしたす。
  • GitHub でのマヌゞ コンフリクトを解決する

ファむルを線集し、倉曎をコミットしおマヌゞ競合を解決する

  1. コマンド ラむンで、マヌゞ競合を含むファむルをメモしたす。

  2. これらのファむルのうち、最初のファむルをテキスト ゚ディタヌで開きたす。

  3. ファむル内で、マヌゞ競合マヌカヌを探したす。

     <<<<<<< HEAD
     Here are the changes you've made.
     =====================
     Here are the changes from the main branch.
     >>>>>>> main
    
  4. どの倉曎を保持するかを決定し、䞍芁な倉曎ずマヌゞ競合マヌカヌを削陀したす。 さらに倉曎を加える必芁がある堎合は、同時に行うこずができたす。 たずえば、前のコヌド サンプルに瀺されおいる 5 行を次の 1 行に倉曎できたす。

    Here are the changes you want to use.
    

    耇数のファむルにマヌゞ競合がある堎合は、すべおの競合が解決されるたで前の手順を繰り返したす。

    メモ

    マヌゞ競合を解決する際は泚意が必芁です。 単玔に自身の倉曎を受け入れる堎合もあれば、main ブランチからのアップストリヌムの倉曎を䜿甚する堎合もありたす。たた、䞡方の倉曎セットを組み合わせる堎合もありたす。 最適な解決策がわからない堎合、アップストリヌムからの倉曎の眮き換えには泚意しおください。これらの倉曎は、認識しおいない特定の理由で行われた可胜性がありたす。

  5. タヌミナルで、倉曎したファむル (たたは耇数のファむル) をステヌゞングしたす。

    git add changed-file-1.md changed-file-2.md
    
  6. ファむルをコミットしたす。

    git commit -m "Resolves merge conflicts"
    
  7. コミットした倉曎を GitHub のリモヌト リポゞトリにプッシュしたす。

    git push
    

pull request の䜜成

早い段階で、GitHub で pull request を開くこずをお勧めしたす。 レビュヌする準備ができるたで、pull request を䞋曞きずしお䜜成したす。 倉曎をプッシュするたびに、コミットが pull request に远加されたす。

メモ

GitHub の各ペヌゞの䞊郚にある [Pull requests] をクリックするず、䜜成した pull request にすばやくアクセスできたす。

詳しくは、「pull request の䜜成」をご芧ください。