git で 複数のコミットを1つにまとめる

● git で 複数のコミットを1つにまとめる

あまりにコミットが多いと、他人が見た時に更新ファイルが見つけにくいという問題がおきるというのが .git あるあるの一つです。
そこで複数のコミットを1つにまとめてみましょう。

● HEAD から 合計3つのコミットを1つにまとめる

git rebase -i HEAD~~~
No.1874
10/06 14:54

edit

git log のリストに変更ファイルを表示する 等 git log の便利な機能

● git のログを表示する

git log

( ↑ ↓ キーで移動して q で終了します。)


● git log のリストに「変更ファイル」を表示する

git log --name-status


● git log のリストに「変更ファイル」を表示する (変更情報なし)

git log --name-only


● 1コミット1行のワンライナーで表示( コミットIDフル表示 )

git log --pretty=oneline


● 1コミット1行のワンライナーで表示( コミットID省略表示 )

git log --oneline


● 1コミットログをグラフ表示

git log --graph
No.1873
10/06 13:01

edit

開発用ブランチで作業中に master が修正されたので取り込む

● 開発用ブランチで作業中に master が修正されたので取り込む

よくある光景です。

1. マージにて取り込む場合

現在作業中のブランチにいるとします。 リモートの情報を取得してから origin /master を取り込みます。

git fetch
git merge origin/master

2. リベースにて取り込む場合

現在作業中のブランチにいるとします。 リモートの情報を取得してから ローカルの master を再度ベースに変更します(リベース)。

git fetch
git rebase master

引用 : https://bit.ly/30mAsTA

No.1871
10/06 11:10

edit

git tag でタグをつける / git のタグを取り消す

● git tag でタグをつける

ローカル

git tag -d v1.2.3

リモートへ push

git push origin v1.2.3

● git のタグを取り消す

タグ「v.1.2.3」を取り消します

ローカル

git tag v1.2.3

リモート

git push origin :refs/tags/v1.2.3
No.1868
09/28 15:25

edit

git の日本語の文字化けを直す

● git の日本語の文字化けを直す

このコマンドで文字化けが治ります

.git リポジトリ単位に設定する場合

git config --local core.quotepath false

マシン全体に設定する場合

git config --global core.quotepath false



● git diff での日本語の文字化けを防ぐ

.bash_profile

export GIT_PAGER="LESSCHARSET=utf-8 less"
No.1867
10/05 10:04

edit

git で 後からブランチを作成する

●git で 後からブランチを作成する

ブランチを作成するのを忘れて作業をしてしまった!!
そんな時に後からブランチを作成する方法です。

1. まだコミット前の場合

普通に新しいブランチを作成するとそのブランチに変更したファイルも引き継がれます

例: 新しいブランチ my_new_branch を作成する。( + 作成後にブランチに移動)

git checkout -b my_new_branch

以上です。
これだけでokです。


2. コミット後の場合

2-1. git stash で一時退避(退避したデータの確認もしておく)

git stash
git stash list

2-2. 新しいブランチ(my_new_branch)を作成し、そのブランチへ移動する

git checkout -b my_new_branch

2-3. stash したファイルを戻す

git stash pop
No.1861
09/30 10:54

edit

git diff で「削除したファイル」「更新したファイル」のみ抽出する / zip 圧縮する

● git diff で 現在のコミットと1つ前のコミットの差分ファイル名のみ表示させる

git diff --name-only HEAD HEAD~1

● git diff で 現在のコミットと1つ前のコミットの差分ファイル名のみ表示させる 「削除ファイルのみ」

git diff --name-only HEAD HEAD~1 --diff-filter=d

● git diff で 現在のコミットと1つ前のコミットの差分ファイル名のみ表示させる 「削除以外のファイルのみ」

git diff --name-only HEAD HEAD~1 --diff-filter=D

● 差分ファイルを圧縮する

git archive --format=zip --prefix=root/ HEAD `git diff --diff-filter=d --name-only HEAD^ HEAD` -o ~/2020_06_18__11_46_09__sabun.zip
No.1717
06/18 11:47

edit