git diff で 特定の 2つのコミットの差分を表示させる

● git diff で 特定の 2つのコミットの差分を表示させる

git diff 古いほうのコミットID  新しいほうのコミットID

(「古いほうのコミットID」「新しいほうのコミットID」は 順番逆でも差分は表示されますが、patch を作成する時に、順番が逆だとリバースパッチを作成してしまうので注意。)

git diff f2244fdacdc8cc8ef6e8fde146842e35570e059d f007eb9f355424252687e7958f718927d70224ca
No.1982
04/02 16:39

edit

git で commit の変更をバッチファイル(パッチ)にする

● git で commit の変更をバッチファイル(パッチ)にする

git diff コマンドでパッチファイルを作成する

まずは確認します

git diff 古いコミットID 新しいコミットID

これで更新ファイルと更新内容確認します。

問題なければバッチファイルを作成します。ファイル名を後に指定するだけです

パッチファイル(myfile.patch)を作成する

git diff 古いコミットID 新しいコミットID > myfile.patch

これでバッチファイルが作成できました。

Windows用に改行コードを CR+LF にする場合は nkf をかませます

git diff 古いコミットID 新しいコミットID | nkf -Lw > myfile.patch

● windows マシンで パッチファイルを元に更新を適用させる

patch.exe -p1 --dry-run < myfile.patch

オプション

-p1 1階層階層の違いを無視します。
--dry-run ドライラン(テスト実行します)

これでエラーが表示されなければ --dry-run をはずして実行します

patch.exe -p1 < myfile.patch

参考
https://qiita.com/sea_mountain/items/7d9c812e68a26bd1a292
http://2hz.org/akebia/item/699

● windowsマシンの patch.exe

こちらに、ユーザーアカウント制御(UAC)対応版を作ってくださってる方がいるのでこちらからダウンロードしましょう。

https://blogs.osdn.jp/2015/01/13/patch.html

No.1955
04/02 16:56

edit

gitlab へ ssh接続で失敗する時の対処法

● gitlab へ ssh接続で失敗する時の対処法

● OpenSSHキーの登録

秘密鍵「id_rsa_my_gitlab」を登録します。

ssh-add ~/.ssh/id_rsa_my_gitlab

● 接続のテスト

次のコマンドで接続のテストが行えます。

ssh -T git@gitlab.com

これでうまくいけばOKです。

● .ssh/config へ登録する

vi ~/.ssh/cofig
# Gitlab
Host gitlab
  	User git
  	Port 22
 	HostName gitlab.com
	IdentityFile ~/.ssh/id_rsa_my_gitlab
	TCPKeepAlive yes
	IdentitiesOnly yes

もちろんパーミッションは 0600 で!

これで

ssh -T gitlab

でテストして接続できればokです

No.1965
04/06 21:18

edit

git で 「ある特定のファイル」を誰が更新したかを調べる

● git で 「ある特定のファイル」を誰が更新したかを調べる

git log -p ファイルのパス で特定のファイル更新を調べることができます

git log -p app/myscript.js
No.1939
01/04 10:45

edit

間違って master にコミットした修正を別ブランチへ移す

● 間違って master にコミットした修正を別ブランチへ移す

既に master に複数のコミットを行ったあとで、masterからはそのコミットを削除したい場合。

手順としては、

「1. 現在の master 状態から新しいブランチを作成」
「2. master ブランチの不要なコミットを消す」

だけです。簡単ですね。

● 現在のブランチを確認

git branch

● 退避させるブランチ「moved__20201110a」を作成し、移動する

git checkout -b moved__20201110a

(ブランチ名はなんでもokです。)

● master ブランチへ戻る

git checkout master

● A. master ブランチからコミットを取り消す(おすすめ)(git revert を使う方法)

git log とコミットIDを表示させる

git log --pretty=oneline
git revert 【コミットID】

実行するとエディタが立ち上がるので、コメントを記述して [esc] → : → wq します。
指定したコミットを打ち消す、コミットが実行されます。
リモートにも反映させることができます。



● B. master ブランチからコミットを取り消す(git reset を使う方法)

git reset --hard HEAD~4

最新から 4つ のコミットを取り消します。 (コミット自体をなかったことにします。)

以上です。 Souce Treeや VS Code などでブランチのツリーを確認します。

添付ファイル1
tree.png ( 12.5 KBytes ) ダウンロード
No.1901
11/13 13:14

edit

添付ファイル

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 -a v1.2.3

リモートへ push

git push origin v1.2.3

● git のタグを取り消す

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

ローカル

git tag -d v1.2.3

リモート

git push origin :refs/tags/v1.2.3
No.1868
03/05 10:21

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