\ ポイント最大11倍! /

【基本】CUI を使った Git の基本操作

独学でプログラミングを始めると、Git はとても身につけにくい技術です。

Git はとても便利な反面、処理のフローが複雑で初学者にとって複雑怪奇。

さらに個人開発では Git なしでもどうにかなってしまうので、学習が後回しになってしまいがちです。

ところが、プログラムが大規模になると Git なしでの開発はほぼ不可能になります。

つまり、会社勤めをするなど複数人で開発するなら Git を扱えることは必須になります。

本記事では CUI を用いた Git 操作を紹介していきます。

なお、CUI操作はなかなかイメージがつかないデメリットもあるので、SourceTreeForkなどと併用するのもおすすめです。僕は併用してます。

Gitコマンドは公式リファレンスが参考になります。
コマンドの数はそこまで多くないので、見出しだけでもざっと目を通しておくと全体感が捉えやすいです。

【基本】CUI を使った Git の基本操作

まずは日常的に使うコマンドからご紹介します。

init

現在のディレクトリを新たに Git 管理下に置きたい場合のコマンドです。

mkdir my_project && cd my_project
git init

このコマンドを実行すると、.gitディレクトリが作成されます。

これにより、現在のディレクトリのファイルやディレクトリが Git によるバージョン管理の対象になるというわけです。

clone

リモートリポジトリをローカルマシンにクローン(コピー)します。

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

コピーしたローカルリポジトリには、リポジトリのコミット履歴やブランチの情報も含まれることになります。

リポジトリーのURLは、リポジトリページの「Code」ボタンから確認できます。

HTTPSまたはSSHのタブをクリックして、URLを取得しましょう。

なお、GitHubでSSH接続の設定を行いたい方は次のページも参考にしてください。

» 参考:【GitHub】SSHキー関連の設定方法まとめ

status

リポジトリの現在の状態(変更内容、コミット状況など)を確認します。

git status

# On branch main
# Your branch is up to date with 'origin/main'.
# nothing to commit, working tree clean

これは頻繁にお世話になるコマンドです。

add

作業ディレクトリでの変更をステージング(次のコミットに追加する準備)します。

ファイル全体をステージングするときは以下のようにします。

# ファイル全体を追加する場合
git add .

. は「カレントディレクトリ下のすべて」という意味です。

また、特定のファイルだけをステージングする場合には具体的なファイル名を指定します。

# 特定のファイルを追加する場合
git add README.md

つまり、上記の例ではREADME.mdだけがステージングされることになります。

commit

ステージングされた変更をリポジトリにコミットします。

-mオプションをつけると、一行コメントを入れることができます。

# 一行コメントを入れる
git commit -m "Add initial project files"

ただし、一般的には「1行目 = タイトル、2行目 = 空白、3行目 = 詳細」といった感じで書きます。そうすると-mだと物足りないので、次のコマンドを実行します。

git commit

実行後に vim が立ち上がるので、以下の要領でコメントを入力していきましょう。

  1. iキーを押す
  2. Enterキーを押す(Insertモードになる)
  3. コミットメッセージを入力する
  4. ESCキーを押す
  5. :wqをタイプする
  6. Enterキーを押す

コメントの記載例をいくつか挙げておきます。

修正: ログイン時のエラーチェックが不十分だった問題を解決

ログインフォームでの入力値チェックが不足しており、特定の入力がエラーを引き起こしていました。
- ユーザ名の空文字を許可しないように修正
- パスワードの最小文字数をチェック
機能追加: ユーザープロファイルページに画像アップロード機能を実装

ユーザーが自分のプロフィール画像をアップロードできるようにするため、以下の変更を加えました。
- 画像アップロードのための新しいフォームを追加
- サーバーサイドでの画像処理ロジックを実装
- アップロードされた画像のサイズ制限を設定
更新: READMEファイルにインストール手順を追記

新しい依存関係ライブラリに対する説明を追加し、ユーザーがプロジェクトをスムーズにセットアップできるようにしました。
- Pythonのバージョン要件を明記
- 実行に必要な外部ツールのリンクを追加

プロジェクトごとにコメントのルールが決められていることもあるので、基本的にそれに従ってください。

push

ローカルのコミットをリモートリポジトリに送信します。

git push origin main

pull

リモートリポジトリの最新の変更をローカルに取り込みます。

git pull origin main

origin と main の意味は以下の通りです。

origin

リモートリポジトリのデフォルトの名前がoriginです。

Git でリポジトリをクローンすると、リモートリポジトリのデフォルトのショートカットとしてoriginが設定されます。

これにより URL を繰り返し入力する代わりにoriginとするだけでリモートリポジトリにアクセスできるようになります。

ここが変更されることは滅多にないので、基本的にはoriginで固定と思っていて間違いありません。

main

リポジトリのブランチ名を指します。

Git では複数のブランチが切られることが多いので、pullしたいブランチ名を正確に指定することが必要になります。

branch

ブランチの確認や作成を行います。

# 既存のブランチ一覧を表示する場合
git branch
# 新しいブランチを作成する場合
git branch feature-branch

checkout

ブランチの切り替えや、特定のコミットに移動します。

# ブランチを切り替える場合
git checkout feature-branch

ブランチを新規作成して、新しくできたブランチに切り替える場合は以下のコマンドを使います。

git checkout -b [新しいブランチ名]

merge

別のブランチを現在のブランチにマージ(統合)します。

git checkout main
git merge feature-branch

cherry-pick

他のブランチにある特定のコミットだけを取り込みます。

git cherry-pick [commitID]

複数のコミットの取り込みや、連続したコミットの範囲指定による取り込みもできます。

別記事で詳しく解説しました。

» 参考:【すぐ分かる】チェリーピック(git cherry-pick)の使い方

log

リポジトリのコミット履歴を表示します。

git log
# ログを1行で表示する場合
git log --oneline

diff

コミット間やステージングエリアと作業ディレクトリの変更点を比較します。

# ステージングされていない変更を確認する場合
git diff
# ステージングされた変更を確認する場合
git diff --staged

ケース別コマンドの組み合わせ

ファイルを追加したり更新した場合

git add -A  # 全てステージングする
git commit -m "メッセージ"  #コミットする
git push origin main  # プッシュする

最新のリモートリポジトリを取り込む

git pull origin main

HTTPS から SSH に変更したいとき

認証方法を HTTPS から SSH に変更する場合には、以下のコマンドを実行します。

git remote set-url origin <新しいリモートリポジトリのURL>

このコマンドが必要な理由は、HTTPS と SSH でリモートリポジトリの URL が変わるためです。

この記事が気に入ったら
フォローしてね!

シェア・記事の保存はこちら!

この記事を書いた人

karo@プログラマのアバター karo@プログラマ プログラマ

「書くことで人の役にたつ」をモットーに活動中。
本職はプログラマで、Pythonが得意。
基本情報技術者試験合格。

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)