0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Git】個人的に役立ったGitコマンドたち

Last updated at Posted at 2024-12-17

こんな時に使える Gitコマンド集

個人的に役立ったGitコマンドをつらつらと。

リモートブランチとローカルブランチを作成する

前提として、githubでリポジトリを作成(リモートブランチ作成)&ローカルに資材作成しておく。

①ローカルの資材をgit管理するための初期化(ローカルブランチ作成)

git init

②リモートブランチとローカルブランチを関連付けるためのコマンド

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

③リポジトリに対してローカルブランチをpush

git push -u origin main

ローカルブランチを削除

ローカルブランチを削除するためのコマンド

git branch -D 削除したいブランチ名

必ず、削除したいブランチ以外のブランチに切り替えてから実行すること。
じゃないとエラーになる。
-Dは未マージのブランチも削除できる強制削除なので、マージされてるローカルブランチだけ消したい場合、-Dの代わりに--merged-dを使う。

たくさんブランチがあって消すのが面倒な人向けに、不要なローカルブランチをまとめて消すコマンド

git branch | egrep -v "(^\*|残したいブランチ名1|残したいブランチ名2)" | xargs git branch -D

(^\*|残したいブランチ名1|残したいブランチ名2)の箇所に、残したいブランチを|で繋いでいけば、必要なブランチだけを残して、不要なローカルブランチを一気に削除可能。
※ windows端末では、Git Bashで実行しないとコマンドが使えないかもしれないです。

リモートブランチをローカルブランチに取り込む

リモートブランチをローカルブランチに取り込むためのコマンド
他人と作業していて、変更を取り込む際に使用する

git fetch
git rebase origin/取り込みたいブランチ名

# 以下、例
git rebase origin/master
git rebase origin/20220505

Conflict 解消時の操作

リモートブランチの最新状態を取り込んだ際に、ローカルブランチの Commit との Conflict が発生した場合の対処方法

# ローカルブランチでの作業をCommitする
git status
git add .
git commit -m "作業内容"

# リモートブランチの最新状態を取り込む
git fetch
git rebase origin/hoge  ←ここで Conflict発生

# Conflictを修正する(取り込むべき変更を取り込む)
# Conflict修正後、変更をStagingして、rebaseを継続する
git status
git add .
git rebase --continue

その後、リポジトリに対してローカルブランチをpushする

git push origin 作業ブランチ名

現在のブランチの作業履歴を確認したい

ブランチの派生やコミット履歴を確認したいときに。

各コミットをツリー形式で表示

git log --graph
実行結果
* commit aaaaa (HEAD -> hoge, origin/hoge)
| Author: user1 <user1@example.com>
| Date:   Mon Dec 16 02:47:34 2024 +0900
| 
|     2024/12/15 最新コミット
| 
* commit bbbbb
| Author: user1 <user1@example.com>
| Date:   Fri Dec 13 10:15:48 2024 +0900
| 
|     2024/12/13 1つ前のコミット
| 
* commit ccccc
| Author: user2 <user2@example.com>
| Date:   Fri Dec 13 02:44:40 2024 +0900

各コミットを一行で表示

git log --oneline
実行結果
aaaaa (HEAD -> hoge, origin/hoge) 2024/12/15 最新コミット
bbbbb 2024/12/13 1つ前のコミット
ccccc 2024/12/12 2つ前のコミット
ddddd (origin/master, master) 2024/12/11 masterの最新コミット

各コミットを特定ファイル単位で差分表示

git log -p path/to/file.tsx
実行結果
commit aaaaa
Author: user1 <user1@example.com>
Date:   Fri Dec 13 02:44:40 2024 +0900

    2024/12/12 このコミットでの変更

diff --git a/app/_layout.tsx b/app/_layout.tsx
index 693d6ad..e5b60d6 100644
--- a/app/_layout.tsx
+++ b/app/_layout.tsx
@@ -1,42 +1,6 @@
-import { useState, useEffect } from 'react';
-import { loadAsync } from 'expo-font';
 import { Stack } from 'expo-router';
-import * as SplashScreen from 'expo-splash-screen';

パスは、実際に資材がある場所の絶対パス。
例)/Users/user1/Git/TestApp/app/index.tsx
ファイルに基づくすべての変更履歴が出るため、大量の変更があった場合にはどのコミットでの変更なのか見づらいことがある

各コミットを特定ファイル単位で差分表示2

git log --word-diff -p path/to/file.tsx
実行結果
commit aaaaa
Author: user1 <user1@example.com>
Date:   Fri Dec 13 02:44:40 2024 +0900

    2024/12/12 コミット1での変更

diff --git a/app/_layout.tsx b/app/_layout.tsx
index 693d6ad..e5b60d6 100644
--- a/app/_layout.tsx
+++ b/app/_layout.tsx
@@ -1,42 +1,6 @@
[-import { useState, useEffect } from 'react';-]

    2024/12/12 コミット1での変更

diff --git a/app/_layout.tsx b/app/_layout.tsx
index 693d6ad..e5b60d6 100644
--- a/app/_layout.tsx
+++ b/app/_layout.tsx
@@ -1,42 +1,6 @@
[-import { useState, useEffect } from 'react';-]
[-import { loadAsync } from 'expo-font';-]
import { Stack } from 'expo-router';
[-import * as SplashScreen from 'expo-splash-screen';-]

[-// Prevent the splash screen from auto-hiding before asset loading is complete.-]
[-SplashScreen.preventAutoHideAsync();-]

commit bbbbb
Author: user2 <user2@example.com>
Date:   Tue Dec 10 01:27:57 2024 +0900

    2024/12/9 コミット2での変更

diff --git a/app/_layout.tsx b/app/_layout.tsx
index fe25ceb..693d6ad 100644
--- a/app/_layout.tsx
+++ b/app/_layout.tsx
@@ -11,24 +11,31 @@ const customFonts = {
};

export default function Layout() {
  {+//+} const [fontLoaded, setFontLoaded] = useState(false);

こちらもパスは、実際に資材がある場所の絶対パス。
各コミットの変更単位で差分が表示されるため、変更箇所が見やすい。

0
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?