📉

【Git】GitHub Desktopの操作をコマンドベースで理解する

2024/12/07に公開

GitHub Desktopの主要な操作をGitコマンドに対応させながらまとめています。


1. コミット

git add .                       # すべての変更をステージング
git commit -m "コミットメッセージ"  # メッセージを添えてコミット

2.リモートリポジトリにプッシュ

git push origin <branch_name>

3. ブランチを作成

git branch <branch_name>  # 新しいブランチを作成
git checkout <branch_name>  # 作成したブランチに切り替え

4. ブランチをマージ

git checkout <target_branch>  # マージ先のブランチに切り替え
git merge <source_branch>     # マージ元のブランチを指定してマージ

5. Rebase

git checkout <feature_branch>  # Rebaseしたいブランチに切り替え
git rebase <main_branch>       # 対象のベースブランチでRebase

Rebaseの概念図

Rebaseは、変更履歴を最新のベースブランチの状態に再適用する操作です。
Rebaseした状態をリモートに git push --force で上書きすると、
リモートの履歴も書き換わります。公開済みブランチでRebaseを行う場合は注意が必要です。

Before Rebase:
main:    A---B---C
feature:     B---X---Y

After Rebase:
main:    A---B---C
feature:         C---X---Y

6. Squash

複数のコミットを1つにまとめる操作です。

git rebase -i HEAD~<number_of_commits>  # インタラクティブRebaseを開始

Squashの概念図

Before Squash:
Commit A
Commit B
Commit C

After Squash:
Commit ABC

7. Undo(変更の取り消し)

対応するGitコマンド

git checkout -- <file_name>  # 指定ファイルの変更を取り消す

8. その他の操作

Amend Commit(直前のコミットを修正)

git commit --amend -m "修正後のメッセージ"

Reset to Commit(指定したコミットにリセット)

git reset [--soft|--mixed|--hard] <commit_hash>

Checkout Commit(特定のコミットをチェックアウト)

git checkout <commit_hash>

Reorder Commit(コミットの順序を並べ替え)

git rebase -i <commit_hash>

Revert Changes in Commit(コミットの変更を打ち消す)

git revert <commit_hash>

Create Branch from Commit(特定のコミットからブランチを作成)

git branch <new_branch_name> <commit_hash>

Cherry-pick Commit(特定のコミットを別ブランチに適用)

git cherry-pick <commit_hash>

Discussion