[初心者向け]初めてのGit設定・コマンド操作についてまとめ

2022.09.06

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

データアナリティクス事業本部 荒木です。

Git初心者の自分が、Gitインストール後の設定やよく使うコマンドについてごれだけ覚えとけばひとまず業務はできると思ったことを備忘も兼ねてまとめたいと思います。

環境

  • Windows
  • WSL2(Ubuntu 20.04.4 LTS)
  • Git version 2.25.1

覚えておく用語

Gitを扱ううえでよく出てくる用語なのでなんのことかわかるようにしておきましょう。

ワークツリー

自身が履歴管理を行いたいファイルがある場所

インデックス

「インデックス」はワークツリーのコンテンツのスナップショットを保持し、次のコミットのコンテンツとして取得されるのはこのスナップショット

ステージング

ワークツリーからコミットしたいファイルや変更したファイルの一部をインデックスに登録すること

ローカルリポジトリ

自分のPCにある履歴管理を行うリポジトリ。ワークツリーを持ち、チェックアウト、マージができるリポジトリ。(ノンベアリポジトリ)

リモートリポジトリ

サーバなど、インターネット上にある履歴管理を行うリポジトリ。ワークツリーを持たず、チェックアウト、マージができないリポジトリ。(ベアリポジトリ)

ブランチ

 ブランチとは、開発の本流から分岐し、本流の開発を邪魔することなく作業を続ける機能のこと。

ローカルブランチ

ローカルリポジトリ内で管理されるブランチ。基本的に本流からローカルでブランチを切って作業し本流にマージする。

リモートブランチ

インターネット上あるいはその他ネットワーク上に存在するリモートリポジトリ内にあるブランチ。

リモート追跡ブランチ

リモートリポジトリにあるリモートブランチの状態をそのままローカルにコピーしたローカルブランチのこと。ローカルリポジトリ-リモートリポジトリ間のやり取りはリモート追跡ブランチを経由して行われる。

上流ブランチ

ローカルブランチが履歴を追跡するように設定したリモートブランチのこと。

※上流ブランチとリモート追跡ブランチの違いに注意

初期設定

最初に設定しておくと便利な設定です。

git config --global user.name [任意のユーザ名]
git config --global user.email [任意のユーザアドレス]
git config --global alias.(設定したい省略系) (元のコマンド)
git config --global --add merge.ff false
git config --global --add pull.ff only
  • git config --global alias.(設定したい省略系) (元のコマンド)checkoutのようなコマンドを省略したcoのような形で登録することができます。(解除したかったらgit config --global --unset alias.(設定した省略系)
  • git config --global --add merge.ff false:マージした際にMerge branch 'develop' into masterのようなマージコミットを作成することができます。
  • git config --global --add pull.ff only:リモートからローカルにプルしてきたときのマージコミットのみを作成しないようにできます。(プルするたびにマージコミットが作成されると履歴が増えちゃうので設定すると便利)

コマンド

よく使うコマンドを項目ごとで紹介します。

確認系

git status          //ブランチの変更内容の状態を確認
git config -l       //gitconfigの確認
git branch -a       //ローカル・リモートのブランチの確認
git branch -vv      //上流ブランチの確認
git log             //コミットのログを確認

リポジトリ複製

git clone [リモートリポジトリURL]
  • プロジェクトの開始時など、自分のローカル環境のカレントディレクトリにリモートリポジトリを複製することができます。

ブランチ操作

作成

git branch [ブランチ名]    //ブランチの作成
git checkout [ブランチ名]   //ブランチの切り替え
  • git checkout -b [ブランチ名]で作成・切り替えを同時にすることもできます。

更新

git add [ファイル名]                      //ファイルをステージング
git commit -a -m "任意のコメント"                //コミット (-aオプションは変更を自動検出してくれる)
git reset --soft HEAD~{n}                    //{n}個前のコミットを取り消し
git reset --hard HEAD~{n}                    //{n}個前のコミット・インデックス・ワークツリーを取り消し
git fetch [origin(省略可)] [ブランチ名(省略可)]      //リモートリポジトリのソースを取得
git merge [ブランチ名]                     //リモートリポジトリのソースを結合
git pull origin [ブランチ名]                 //リモートリポジトリのソースを取得&結合
git push -u origin [ブランチ名]                //変更をリモートリポジトリに反映
  • git pushを初めてする際には-uを入れるようにしましょう。それにより上流ブランチが設定され、次回から引数を省略したgit pullgit pushでコマンドを実行することができます。

削除

git branch -d [ブランチ名]                 //ローカルブランチの削除
git push origin --delete [ブランチ名]            //リモートブランチの削除
  • git branch -d [ブランチ名]-dオプションは、削除対象のブランチがリモートブランチにプッシュおよびマージ済みの場合のみ削除を実行します。プッシュ、マージされていないブランチを強制的に削除したい場合は、代わりに-Dを使用します。

最後に

以上が自分が業務で使用するにあたり、最低限必要だと感じたGitに関する情報でした!

もちろんこれら以外にも必要となるコマンドなどはありますので、必要に応じて公式のドキュメントなどを確認してみてください。

Gitのファイル操作はVisual Studio Codeなどのソースコードエディタを利用することでコマンドを打たなくても追加・編集などできるようになるので活用した方がよいかと思います。

参考

git公式ドキュメント