LoginSignup
25
22

More than 5 years have passed since last update.

[Git] 色々メモ

Last updated at Posted at 2014-09-02

ハマったこと、あんまり使わないけどあとあと使いたいものなどをざっくりとメモ。
なので随時更新です。

logformatオプション

$ git log --pretty=format:"[%ad] %h %an : %s"
オプション 出力される内容
%H コミットのハッシュ
%h コミットのハッシュ (短縮版)
%T ツリーのハッシュ
%t ツリーのハッシュ (短縮版)
%P 親のハッシュ
%p 親のハッシュ (短縮版)
%an Author の名前
%ae Author のメールアドレス
%ad Author の日付 (--date= オプションに従った形式)
%ar Author の相対日付
%cn Committer の名前
%ce Committer のメールアドレス
%cd Committer の日付
%cr Committer の相対日付
%s 件名
%x09 タブ文字

ログを桁あわせする

%<(10)%hなどのように%<(n)を指定すると、続く内容を指定した数字で桁あわせしてくれる。

$ g log -2 --pretty=format:"[%h](%<(10)%an) %s"
[2733c5d](edom18            ) コード整理
[8f2545f](otherMember       ) コメントを整理

みたいな感じになる

過去の変更から、特定の文字列を含んだものを検索する

-Sオプションを使います。

$ git log -p -S hoge

こうすると、hogeという文字列を含んだ変更を列挙してくれます。

branchの派生を視覚的に表示する

$ git log --graph --branches --pretty=format:"%d [%h] \"%s\""

branchの派生元確認

[追記]
コメントで教えてもらいましたが、以下のようにするとダイレクトに派生元のコミットのハッシュが得られるので便利です。

$ git merge-base develop feature/hoge
$ git show-branch --sha1-name develop feature/hoge | tail -1

とすることで、feature/hogedevelopのどこから派生したかのコミットを表示してくれる。

リポジトリから最新の履歴だけを取得する

$ git clone —-depth 1 https://github.com/***

patchを作ってマージできるかチェックする

手順は、パッチ作成→パッチ適用テスト、な感じ。
まず、パッチを「当てる元」のブランチに移動。(例えばmasterにマージする予定のtopicブランチに移動)
その後、以下のコマンドでパッチファイルを作成

$ git format-patch <BRANCH-NAME> — stdout > <PATCH-FILE-NAME>
$ git co master
$ git apply <PATCH-FILE-NAME> —check

とあるコミットから変更のあったファイルだけを一覧表示

$ git diff --name-only HEAD <any commit>

コミットした内容がどこにいってしまったか分からないときは(reflog (レフログ))

$ git log -g --oneline HEAD

競合解決がされていないファイルのチェック

$ git ls-files -u

差分ファイルの適用

$ git diff hoge > pending.diff
$ ….
$ git apply pending.diff

差分ファイルの作成と適用 (make diff file(s) and apply)

$ git diff HEAD^..HEAD hoge.js > foo.patch
$ patch --dry-run -p1 < foo.patch
$ patch -p1 < foo.patch

※gitのrootで差分作成・適用をやること。
※-p1はパスを1階層無視。
※-dry-runは適用後どうなるかのチェック

Refer to: http://d.hatena.ne.jp/zariganitosh/20080325/1206435474

ファイルを消しちゃった場合にもとに戻す

$ git rm hoge.png //しちゃった場合は↓でいけました
$ git reset HEAD hoge.png
$ git checkout hoge.png
25
22
2

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
25
22