git コマンド (GitHub, GitLab)

Gitは、分散型バージョン管理システムであり、プロジェクトのファイルやディレクトリの変更履歴を効果的に管理するためのツールです。Gitコマンドを使用して、履歴の追跡、ブランチの作成・マージ、リモートリポジトリとの同期が行えます。

目次

主要な Git コマンド

ここでは、主要なGitコマンドについて、具体例を交えて詳しく説明します。

  • git init – 新しいリポジトリの初期化
  • git clone [リポジトリURL] – リモートリポジトリの複製
  • git status – 作業中の状態確認
  • git add [ファイル名/ディレクトリ名] – ステージングエリアへの追加
  • git commit -m "コミットメッセージ" – 変更の確定
  • git diff – 変更点の表示
  • git log – コミット履歴の表示
  • git branch – ブランチ一覧の表示
  • git checkout [ブランチ名] – ブランチの切り替え
  • git merge [ブランチ名] – ブランチのマージ
  • git remote add [リモート名] [リポジトリURL] – リモートリポジトリの追加
  • git push [リモート名] [ブランチ名] – リモートリポジトリへの変更のプッシュ
  • git pull [リモート名] [ブランチ名] – リモートリポジトリからの変更の取得

git init

新しいリポジトリを作成するために、プロジェクトディレクトリに移動してgit initを実行します。

git init

git clone [リポジトリURL]

GitHubやGitLabからリポジトリをクローンします。以下のように、リポジトリURLを引数に指定します。

git clone https://github.com/username/repository.git

git status

作業ディレクトリの状態を確認します。変更されたファイルやステージングされているファイルが表示されます。

git status

git add [ファイル名/ディレクトリ名]

ファイルやディレクトリをステージングエリアに追加します。以下のようにファイル名やディレクトリ名を指定できます。

git add myfile.txt
git add my_directory/

git commit -m "コミットメッセージ"

ステージングされた変更をコミットし、変更履歴に記録します。適切なコミットメッセージを付けましょう。

git commit -m "Add myfile.txt and update my_directory"

git diff

コミットされていない変更を確認します。ファイル間の差分が表示されます。

git diff

git log

コミット履歴を表示します。各コミットのハッシュ、作者、日付、メッセージが表示されます。

git log

git branch

現在のリポジトリ内のブランチ一覧を表示します。

git branch

git checkout [ブランチ名]

ブランチを切り替えます。以下のようにブランチ名を指定して実行します。

git checkout my-feature-branch

git merge [ブランチ名]

他のブランチを現在のブランチにマージします。以下のようにマージするブランチ名を指定します。

git merge my-feature-branch

git remote add [リモート名] [リポジトリURL]

リモートリポジトリを追加します。リモート名とリポジトリURLを指定して実行します。

git remote add origin https://github.com/username/repository.git

git push [リモート名] [ブランチ名]

ローカルリポジトリの変更をリモートリポジトリにプッシュします。リモート名とブランチ名を指定して実行します。

git push origin my-feature-branch

git pull [リモート名] [ブランチ名]

リモートリポジトリの変更をローカルリポジトリに取り込みます。リモート名とブランチ名を指定して実行します。

git pull origin main

商用 Git VCS サービス

GitHub

  • よく知られており、大規模なオープンソースコミュニティが存在しています。
  • 無料プランではパブリックリポジトリが無制限で、プライベートリポジトリにも一定の制限があります。
  • Marketplaceで様々なアプリケーションやサービスを利用できます。
  • GitHub Actionsを使用したCI/CD(継続的インテグレーションと継続的デプロイメント)機能があります。

GitLab

  • オープンソースであり、自分でホストすることができます(オンプレミス・クラウド)。
  • 無料プランでもパブリックリポジトリとプライベートリポジトリが無制限で利用できます。
  • GitLab CI/CDを使用したCI/CD機能があります。
  • 組織向けのセキュリティ機能や監査機能が充実しています。

どちらを選ぶかは、プロジェクトやチームのニーズに応じて検討することが重要です。オープンソースコミュニティや市場での存在感を優先するならGitHub、自己ホストやオールインワンソリューションを求めるならGitLabがおすすめです。

Gitを使う上でのお作法

Gitを使う上で知っておくと良いマナーや作法は以下のようなものがあります。

適切なコミットメッセージを書く

コミットメッセージは、変更内容を簡潔且つ明確に記述することが望ましいです。イメージとして、他の開発者がそのコミットメッセージだけを読んでも、どのような変更がされたか理解できるようにすることが大切です。

小さくて意味のあるコミットを行う

小さな変更ごとにコミットを行うことで、一度に多くの変更が行われた場合に、問題が発生した際に原因を特定しやすくなります。また、履歴が見やすくなり、後から修正やリファクタリングが容易になります。

ブランチ戦略を考える

開発中の機能や修正を分けて管理するために、ブランチを活用します。一般的には、main(またはmaster)ブランチを安定版とし、新しい機能やバグ修正は個別のブランチで開発し、作業が完了したらmainブランチにマージするという流れが一般的です。

リモートリポジトリにプッシュする前にテストを行う

プッシュ前にローカルでテストを行い、問題がないことを確認するのは良い習慣です。変更内容が他者の開発や動作に悪影響を与えないよう、安定した状態でプッシュしましょう。

.gitignoreファイルを利用する

プロジェクト内でGitに追跡してほしくないファイルやディレクトリ(例: 一時ファイル、ビルド成果物、秘密情報を含むファイルなど)がある場合は、.gitignoreファイルを作成して、それらを無視するよう設定しましょう。

コードレビューを実施する

チーム開発において、プルリクエストのコードレビューは非常に重要です。他者からのフィードバックを通じて、コードの品質を向上させることができます。また、他者の変更内容も把握することができます。

適切なタイミングでプルリクエストをマージする

コードレビューが終わり、問題がないことが確認されたら、プルリクエストをマージします。他の開発者が同時に変更を加えている場合は、適切なタイミングでマージすることが重要です。


これらの作法やマナーを守ることで、チーム開発が円滑に進み、コードの品質も向上します。

プルリクエスト (Pull Requests) のお作法

Gitでプルリクエスを扱う際に注意すべき点は以下の通りです。

明確なタイトルと詳細な説明

プルリクエストのタイトルは簡潔且つ明確にすることが重要です。また、説明欄では変更内容や目的、関連するイシュー番号、テスト方法などを記述しましょう。これにより、レビュアーが理解しやすくなります。

範囲を限定した変更

プルリクエストは、特定の問題や機能追加に集中して作成することが望ましいです。無関係な修正やリファクタリングは別のプルリクエストに分けると、レビューがしやすくなります。

最新のmainブランチからブランチを切る

他の開発者との変更競合を避けるために、最新のmain(またはmaster)ブランチからブランチを切って作業しましょう。また、定期的にmainブランチをマージしておくと、変更競合の解消が容易になります。

プルリクエストのテンプレートを活用する

チームに共通のプルリクエストテンプレートを利用することで、情報の整理やパターン化ができます。これにより、レビュアーが必要な情報を簡単に把握できるようになります。

イシュー (Issues) のお作法

Gitでイシューを扱う際に注意すべき点は以下の通りです。

明確なタイトルと詳細な説明

イシューのタイトルは簡潔且つ明確にしましょう。また、説明欄では問題の再現手順、期待する動作、実際の動作、関連するログやスクリーンショットなどを記述しておきます。これにより、他の開発者が問題を理解しやすくなります。

ラベルとマイルストーンを活用する

イシューの管理には、ラベルやマイルストーンを活用しましょう。ラベルはイシューのカテゴリや優先度を視覚的に表現でき、マイルストーンはイシューの状態や進捗を管理するのに役立ちます。

適切な担当者をアサインする

イシューに対して適切な担当者をアサインしましょう。これにより、誰がそのイシューを解決する責任を持っているか明確になります。

イシューテンプレートを利用する

チームに共通のイシューテンプレートを用意しておくと、情報の整理やパターン化ができ、問題の把握が容易になります。


これらのポイントに注意しながらプルリクエストやイシューを扱うことで、チーム内のコミュニケーションが向上し、効率的な開発が進められます。

VSCode との連携

GitとVSCodeを連携させることで、効率的な開発が可能になります。以下は、GitとVSCodeの便利な活用方法です。

Git統合機能の利用

VSCodeには、デフォルトでGit統合機能が提供されています。これにより、VSCodeのエディター内でリポジトリの状態を確認したり、コミットやブランチの操作を行うことができます。

  • ソースコントロールビュー: 左サイドバーからソースコントロールアイコンをクリックすると、変更差分やステージングされたファイルを表示します。また、ここでコミットメッセージを入力してコミットを実行できます。
  • ブランチの切り替え・作成: VSCodeの左下にあるブランチ名をクリックすると、ブランチの切り替えや新しいブランチの作成が可能です。

Git関連の拡張機能をインストール

VSCodeのマーケットプレイスには多くのGit関連の拡張機能があり、追加機能を利用できます。以下は、便利な拡張機能の例です。

キーバインドによるGit操作の高速化

VSCodeでは、キーバインドを利用してGit操作を素早く行うことができます。以下は、便利なキーバインドの一例です。

  • Ctrl + Shift + G: ソースコントロールビューを開く
  • Ctrl + Shift + P → “Git: Stage Changes”: 変更内容をステージする
  • Ctrl + Shift + P → “Git: Unstage Changes”: ステージした変更を取り消す
  • Ctrl + Shift + P → “Git: Commit”: コミットを実行する
  • Ctrl + Shift + P → “Git: Fetch”: リモートリポジトリの最新情報を取得する

これらの方法を活用することで、GitとVSCodeを効率的に連携させることができます。開発時の生産性が向上し、よりスムーズな作業が可能になります。

トラブルシューティング

Gitのトラブルシューティングで役立つ情報を以下にまとめました。

git status を使って現在の状態を確認

問題が発生した場合、まずは git status コマンドを使って、現在のリポジトリの状態や変更ファイルの状況を確認しましょう。

git status

git log でコミット履歴を確認

次に、 git log コマンドを使ってコミット履歴を表示し、問題が発生したタイミングや関連するコミットを見つけ出します。

git log --oneline --graph --decorate

ブランチ管理

誤ったブランチで作業している可能性がある場合、 git branch コマンドを使って現在のブランチと全てのブランチを確認しましょう。

git branch

ブランチの切り替えが必要であれば、 git checkout コマンドを使用します。

git checkout <branch-name>

ファイルの変更差分を確認

git diff コマンドを使って、現在の変更内容やステージされていない差分を表示できます。これにより、予期しない変更があるかどうか確認できます。

git diff

コミットの変更履歴を調べる

git blame コマンドでは、ファイル内の各行がどのコミットによって変更されたかを調べることができます。これで特定の不具合が発生した原因を突き止める手助けになります。

git blame <file-name>

コミットを取り消す・修正する

誤ったコミットを取り消す場合は、git revert や git reset を利用します。ただし、注意が必要です。

git revert

新しいコミットを作成して対象コミットの変更を打ち消す。

git revert <commit-hash>
git reset

コミット自体を削除する。公開済みのリポジトリでは使用しない方が良い。

git reset <commit-hash> --hard (or --soft, --mixed)

コミットメッセージを修正する場合は、git commit --amend を使用します。

git commit --amend -m "New commit message"

コミットのマージを解除

git merge を行った後で、そのマージを取り消したい場合は、git reflog と git reset コマンドを使います。

git reflog
git reset <commit-hash> --hard

これらの情報が、Gitのトラブルシューティング時に役立つでしょう。それでも問題が解決しない場合は、オンライン上のフォーラムやQ&Aサイトで質問することもお勧めします。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次