Help us understand the problem. What is going on with this article?

Gitコマンドの備忘録

More than 5 years have passed since last update.

自分用Gitコマンドの備忘録です。
内容は少しずつ追加していきたいと思います。
これいいよ!とか言うものがあればぜひコメントで教えていただけると助かります!

Gitでローカルの変更を元に戻す

  • ファイルの変更をもとに戻す場合
    $ git checkout {{ファイル名}}

  • 特定のファイルではなくすべてのファイルの変更を元に戻したい場合
    $ git checkout .

Aliasの設定

設定方法
ex) statusのalias設定
$ git config --global alias.st = status

コミットを別ブランチにコピーする

  • コミット番号を調べる
    $ git log --oneline --decorate --graph {{branch_name}}

  • コピーしたいブランチに移動
    $ git checkout {{barnch_name}}

  • コミットをコピー
    $ git cherry-pick {{commit_id}}

直前のコミットメッセージを修正する

$ git commit --amend

コンフリクトが起きた時、どちらかを優先させる

  • 自分のコードを優先したい場合
    $ git checkout -ours {{. or /path/to/file}}

  • マージした側のコードを優先したい場合
    $ git checkout -theirs {{. or /path/to/file}}

私のAliasの設定

[alias]コマンドの設定はWindowsでは出来ないので注意!
(別のやり方があれば教えてください)

.gitconfig
[alias]
    st = status
    cm = commit -m
    ad = add
    ps = push
    ft = fetch
    pl = pull
    co = commit
    di = diff
    dic = diff --cached
    br = branch
    bra = branch -a
    sh = show
    so = remote show origin
    cam = commit --amend
    wc = whatchanged
    lp = log -p
    lo = log
    dm = diff master
    gr = grep --color
    gn = grep -n --color
    alias = !git config --list | grep 'alias\\.' | sed 's/alias\\.\\([^=]*\\)=\\(.*\\)/\\1\\\t => \\2/' | sort
    today = log --oneline --since='12 hour ago'
    ch = checkout
    id = log --oneline --decorate --graph

ブランチ間のマージ

ブランチ間のマージ方法です。
ex) testブランチからmasterブランチへのマージ

$ git fetch
$ git checkout master
$ git merge test

マージした際にコンフリクトが発生すると自動コミットされません
コンフリクトが発生しているファイルを確認する場合は、git statusコマンドを打つと、
both modified: file
と表示されているファイルがコンフリクトしているファイルとなります
私はよくコンフリクトを起こしたファイルのみを取り出したいので、
$ git status | grep both
のようにしています

また、コンフリクトを修正後、コミットを行いますが、その際にメッセージを入力せずにコミットすると、
gitが自動的にコミットメッセージを入力してくれます

削除したファイルのインデックス追加

git rmコマンドを使わずにファイルを削除した場合、
通常のgit addコマンドではインデックスに追加することが出来ません

やりかたとしては何種類かあるのですが、
手っ取り早いのはgit add -Aで全ファイルインデックス追加処理を行うことです
ただこれでは、インデックスに追加したくないファイルまで追加されてしまいますので、
その場合はgit add -u /path/to/fileコマンドで追加してあげることが出来ます
私はこれを最近まで知らず、SourceTreeから削除したファイルを
1つずつインデックスに追加してあげてました。。。(´・ω・`)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away