「Gitでよくやること」の版間の差分

提供: オレッジベース
ナビゲーションに移動 検索に移動
編集の要約なし
103行目: 103行目:
$ git stash list
$ git stash list
</syntaxhighlight>
</syntaxhighlight>
=== log ===
==== 1行表示 ====
<syntaxhighlight lang="bash">
$ git log --oneline
</syntaxhighlight>
==== グラフィカル表示 ====
<syntaxhighlight lang="bash">
$ git log --graph
</syntaxhighlight>
==== 追加/削除行数 ====
<syntaxhighlight lang="bash">
$ git log --numstat
</syntaxhighlight>
==== 変更したファイル ====
<syntaxhighlight lang="bash">
$ git log --name-status
</syntaxhighlight>
==== 絞り込み ====
===== 期間(相対値) =====
<syntaxhighlight lang="bash">
$ git log --since="10 days ago" --until="2 days ago"
</syntaxhighlight>
===== 期間(絶対値) =====
<syntaxhighlight lang="bash">
$ git log --since="2019/03/01" --until="2019/03/03"
</syntaxhighlight>
===== 件数 =====
<syntaxhighlight lang="bash">
$ git log -1
</syntaxhighlight>
===== ファイル =====
<syntaxhighlight lang="bash">
$ git log ./dokokanoDIR/nanikanoFILE
</syntaxhighlight>
===== 人 =====
<syntaxhighlight lang="bash">
$ git log --author='dareka'
</syntaxhighlight>
===== コミットログ =====
<syntaxhighlight lang="bash">
$ git log --grep='コメント'
</syntaxhighlight>
===== マージコミット =====
<syntaxhighlight lang="bash">
$ git log --merges
</syntaxhighlight>
===== マージコミットを除く =====
<syntaxhighlight lang="bash">
$ git log --no-merges
</syntaxhighlight>
==== format ====
<syntaxhighlight lang="bash">
$ git log --pretty=format:"[%ad] %h %an : %s"
</syntaxhighlight>
{| class="wikitable"
!|パラメーター
!|説明
|-
|%H
|コミットのハッシュ
|-
|%h
|コミットのハッシュ (短縮版)
|-
|%T
|ツリーのハッシュ
|-
|%t
|ツリーのハッシュ (短縮版)
|-
|%P
|親のハッシュ
|-
|%p
|親のハッシュ (短縮版)
|-
|%an
|Author の名前
|-
|%ae
|Author のメールアドレス
|-
|%ad
|Author の日付 (-date= オプションに従った形式)
|-
|%ar
|Author の相対日付
|-
|%cn
|Committer の名前
|-
|%ce
|Committer のメールアドレス
|-
|%cd
|Committer の日付
|-
|%cr
|Committer の相対日付
|-
|%s
|件名
|}


=== config関連 ===
=== config関連 ===

2019年3月5日 (火) 03:19時点における版

リポジトリの作成

$ mkdir <DIR>
$ cd <DIR>
$ git init --bare --shared

clone

$ git clone <REPOSITORY_PATH>

pull

$ git pull

変更の確認

$ git status

add

とりあえず全部

$ git add -A

新規作成 or 変更されたもの

$ git add .

変更があったもののみ

$ git add -u

commit

$ git commit -m "<MESSAGE>"

push

$ git push <REMOTE> <BRANCH_NAME>

merge

$ git merge <BRANCH_NAME>

branch確認

$ git branch

or

$ git branch -a

checkout

特定のコミットをcheckout

$ git checkout <COMMIT_ID>

ブランチ切り替え

$ git checkout <BRANCH_NAME>

新しくブランチを持ってくる

$ git checkout -b <BRANCH_NAME> <REMOTE>/<BRANCH_NAME>

e.g

$ git checkout -b develop origen/develop

checkoutできないとき

エラー内容

fatal: git checkout: updating paths is incompatible with switching branches.
Did you intend to checkout 'origin/remote-name' which can not be resolved as commit?

こうする

$ git remote show <REMOTE>
$ git remote update
$ git fetch
$ git checkout -b <BRANCH_NAME> <REMOTE>/<BRANCH_NAME>

stash

とりあえず面倒なとき

$ git stash

メッセージ付きでstash

$ git stash save "<MESSAGE>"

一覧

$ git stash list

log

1行表示

$ git log --oneline

グラフィカル表示

$ git log --graph

追加/削除行数

$ git log --numstat

変更したファイル

$ git log --name-status

絞り込み

期間(相対値)
$ git log --since="10 days ago" --until="2 days ago"
期間(絶対値)
$ git log --since="2019/03/01" --until="2019/03/03"
件数
$ git log -1
ファイル
$ git log ./dokokanoDIR/nanikanoFILE
$ git log --author='dareka'
コミットログ
$ git log --grep='コメント'
マージコミット
$ git log --merges
マージコミットを除く
$ git log --no-merges

format

$ 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 件名

config関連

Author

$ git config --global user.name <NAME>
$ git config --global user.email <EMAIL>

or

$ git config user.name <NAME>
$ git config user.email <EMAIL>

permission変更を無視

$ git config core.filemode false