0
0

Git初心者がGitの使い方を簡単にまとめる

Posted at

はじめに

この記事は、Git( & Qiita)初心者が、自身のための勉強メモとして書いた記事です。

すでにGitの使い方をまとめた素晴らしい記事が複数あるので、Git初心者はそちらを参考にすることをオススメします。

Qiita記事: [初心者向け]GitとGitHubの使い方を徹底解説
Qiita記事: 君には1時間でGitについて知ってもらう(with VSCode)

Gitとは

Gitは、分散型のバージョン管理システムです。ファイルの変更履歴を保存し、その変更履歴を辿ることで、ファイルの状態を戻すことができます。「リポジトリ」と呼ばれるファイルやデータの格納庫を使います。

GitHubは、ソースコードを共有し、管理するためのプラットフォームです。

ファイル変更からプッシュまでの概要

Gitでは、自分のファイルの変更内容を、ローカルリポジトリに書き込んで、変更内容をリモートリポジトリに転送することで、バージョン管理をします。

エディタでファイルの変更内容を保存したら、それを「ステージングエリア」に追加します(=ステージング)。そして、コメント(=コミットメッセージ)を添えて、ローカルリポジトリに記録(=コミット)します。更にこれをリモートリポジトリに送信(=プッシュ)することで、リモートリポジトリに情報が保存されます。

実際にやってみる

実際に、手元にあるファイルをGitHub上へプッシュしてみましょう。

なお、gitのインストール、GitHubへの公開鍵認証、git config user.name及びgit config user.emailなどの初期設定の説明は省略します。

まず、コマンドプロンプトを開いて、バージョン管理したいプロジェクトファイルへcdコマンドで移動し、次のコマンドを打ちます。

git init

プロジェクトファイル直下に.gitファイルが作成されました。image.png
.gitファイルの中身には、ファイルの変更履歴やブランチ(リポジトリの分岐した状態を指すもの)などを保管していくことで、バージョン管理を行っています。

次に、git addコマンドにて、ファイル(hello.c)をステージします。

git add hello.c

git add (ファイル名)とすることで、(ファイル名)をステージします。まとめてステージしたい場合は、

git add .

とします。
ステージングエリアに追加されたファイルを、ローカルリポジトリに追加します。

git commit

コミットしたら、

git status

として、前回のコミットから変更のあるパスを表示できます。
そして、

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

とすることで、コミットすることができます。開発では、コミットの内容がわかりやすいように、コミットメッセージを記します。

開発におけるコミットメッセージの書き方はこちらを参考にすると良いでしょう。
Zenn記事: Gitのコミットメッセージの書き方(2023年ver.)

最後に、

git push origin (リモートブランチ名)

とすることで、プッシュ完了です。上流ブランチを設定することで、`origin (リモートブランチ名)は、省略可能です。

その他まとめ

上記の流れで、ローカルファイルをGitHub上へ公開することが出来ましたが、実際の開発では、ブランチマージといった概念が重要になります。また、GitHubには、Pull requestsGitHub issuesといったものもあり、チームでの開発では大切な要素になります。

GitやGitHubについて網羅的に説明しようとするのは極めて難しいので、大雑把ではありますが、以下に自分の勉強メモを簡単にまとめました。

用語のまとめ

用語 意味
リポジトリ ファイルを管理しておく場所。ローカルリポジトリとリモートリポジトリの2種類がある
ワークスペース 作業しているフォルダ
ステージ 変更したファイルをステージングエリアに追加する
コミット 変更をリポジトリに記録する
リセット 変更をなかったことにする
ブランチ 異なるコミット履歴を持つ、コードの分岐した状態
マージ ブランチを合流させる
リベース 現在のブランチのコミットを別のブランチの先端に再適用する
パッチ (Gitでは、)プログラムの変更部分のソース
プッシュ ローカルリポジトリからリモートリポジトリにデータを記録する
プル リモートリポジトリからローカルリポジトリにデータを記録する
フェッチ リモートリポジトリとローカルリポジトリの差分を検出する
スタッシュ ファイルの変更を一時的に退避する
アメンド 直前のコミットを修正して、新しいコミットを作成する
チェリーピック 特定のコミットを別のブランチに適用する
タグ リリースされたバージョンなどに名前をつける
ファストフォワード マージ元のブランチが、マージ先のブランチの履歴に完全に含まれているようなマージ
コンフリクト マージ操作中に発生する変更内容の衝突
.gitignore Gitによる追跡を避けるファイルを指定するためのファイル
.gitkeep Gitリポジトリで、空のディレクトリを保持するためのファイル

コマンドのまとめ

# Gitのバージョンを表示する
git --version

# Gitリポジトリの現在の状態を表示する
git status

# コミット履歴を表示する(--all、--graph、--sinceオプションなどがある)
git log

# タグの一覧を表示する
git tag

# ブランチの一覧を表示する
git branch

# リモートリポジトリの一覧を表示する
git remote

# スタッシュの一覧を表示する
git stash list

# すべての設定の確認
git config -l --show-origin

# リポジトリを作成する
git init

# hello.cをステージング
git add hello.c
# 変更したファイルをステージング
git add .

# コミットする
git commit -m 'コミットメッセージ'
# アメンドによるコミット
git commit --amend --no-edit

# プッシュする
git push origin (リモートブランチ名)
# アップストリームを設定する
git push --set-upstream origin (リモートブランチ名)
# アップストリーム設定後のプッシュ
git push

# フェッチする
git fetch

# 以前の状態を復元する
git checkout .

# 1つ手前のコミット(HEAD^)まで戻す(リセットモードには、Soft, Mixed, Hardがある)
git reset HEAD^ --hard

# コミットに「v1.0.0」という名前のタグを追加する。(コミットID)が未指定なら、最新のコミットに反映される
git tag v1.0.0 (コミットID)

# タグを削除
git tag -d v1.0.0

# ブランチ「develop」を作成
git branch develop
# 特定のコミットからブランチ「develop」を作成
git checkout (コミットID) -b develop

# ブランチ「develop」に切り替える
git checkout develop

# マージする(--no-editをつけることでコミットメッセージを自動的に作成)
git merge feature-branch --no-edit

# ブランチを削除する(削除するブンチ以外のブランチにチェックアウトした状態で↓)
git branch -d feature-branch

# ブランチ名を変更する(masterをmainにする)
git branch -m master main

# リモートリポジトリのアドレスを登録する
git remote add origin (アドレス)

# クローンする
git clone (アドレス) (フォルダ名)

# スタッシュする(-uオプションで、ステージングしていないファイルも対象とする)
git stash save '作業中断'

# スタッシュを適用する(※git stash listで識別番号を確認すること)
git stash apply stash@{0}

# スタッシュを削除する
git stash drop stash@{0}

# リベース
git rebase (ブランチ名)

# チェリーピック
git cherry-pick (コミットID)

# 差分の確認
git diff HEAD^ HEAD^^
# パッチファイルの作成
git diff HEAD^ HEAD^^ > ../patch.diff

# パッチの適用
patch < ../patch.diff

備考

  • GitHubでは、SSHを使用することで、ユーザーがリモートリポジトリに安全にアクセスする
  • Gitをチームで運用する際プロセスをワークフローという。[日本語訳]A successful Git branching model
  • リモートブランチの名前変更や削除、デフォルトブランチの変更はGitHub上で行える
  • リベースは、コミットログを整理したいときに使う
  • アメンドができるのは、プッシュをしていないコミットのみ
  • Issues...プロジェクト管理において、タスク、バグ、機能要求などを追跡するための機能
  • Milestone...進捗状況を管理するための機能
  • GitHub Pages...Publicに設定したリポジトリのウェブサイトを公開する
  • GitHub Actions...CI/CDツール
  • GitHub Desktop...GitHub公式によるGitのクライアントソフト
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0