こんばんは!ほけきよです。 昨日は、初心者が覚えるべきコマンドを紹介しました。
しかし、アレだけでは足りません。
Gitを使い始めると、conflictとかでいろいろ頭を抱えることが多くなると思います。少なくとも私はそうです。未熟なもので。。。
今回は、Gitをより自由に使っていくためのコマンドたちを紹介します。
よく起こるミスとその直し方
直前のcommitまで戻る
git checkout <file>
commitのメッセージを変える
git commit --amend
git commit --amend -m "hogehoge"
一行バージョン
ログに変更したものの履歴まで表示させたい
git log --stat
commit 0ac447450a00d607d94902331eee8ec042bf8c97 Author: (設定したもの) Date: Wed Oct 12 00:57:59 2016 +0900 Initial Commit .gitignore | 2 ++ README.md | 1 + memo.md | 0 3 files changed, 3 insertions(+)
コミットをコピー
git log
から、commit hashを6-7文字コピーgit checkout hogehoge
hogehogeブランチに移動git cherry-pick <hash>
さっきのコミットをコピー
commitを消す : 状況に応じて4つ使い分ける
git reset --soft <hash>
- 消えるが、staging areaに変更が残る(再度commit可能)
git reset <hash>
- 修正したfileはstaging areaに残る。追加したfileはworking directoryに残る
git reset --hard <hash>
- 修正履歴は消える
- untracked files(まだaddしていない、新しく追加されたファイル)は残る
git clean -df
- untracked files(追加したファイル)も消える
commitの実行履歴を表示する
git reflog
- ハッシュが表示される
0ac4474 HEAD@{0}: commit (initial): Initial Commit
特定の実行履歴のところまで戻れる
git checkout <hash>
履歴を残しつつ、変更前に戻したい
- 歴史の改変はあんまりしないほうが良い場合もある
git revert <hash>
- logには、「変更前に戻したよ」というのが追加される
git stash の使い方
git checkout -b newbranch
-> ファイル変更- working directoryに色々残っててほかのbranchに移れない
- git stashがとても便利
git stash save "some changes"
- あたかも変更されていないように、一時的に退避
$git stash save "test"
git stash list
- stashしたものがメッセージと一緒に残る
stash@{0}: On master: test
git stash apply stash@{#} #:数字
- 戻すことがデキる
- stash listから退避してたものを消す
git stash pop
- 最新のものを消す
git stash drop stash@{#}
- 狙ったものを消す
git stash clear
- すべて消す
まとめ
この位できるようになってくれば、便利だなと感じることも多くなってきます。 Gitは一度覚えてしまえばとても便利なので、何度もコマンドを使うことで覚えましょう。 それではまた明日!
Gitが、おもしろいほどわかる基本の使い方33〈バージョン管理、SourceTree、Bitbucket〉
- 作者: 大串肇,久保靖資,豊沢泰尚
- 出版社/メーカー: エムディエヌコーポレーション
- 発売日: 2015/05/26
- メディア: 単行本
- この商品を含むブログ (3件) を見る
GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)
- 作者: 大塚弘記
- 出版社/メーカー: 技術評論社
- 発売日: 2014/03/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (22件) を見る