「GITの使い方」の版間の差分
提供: Eospedia
(→git reset とは?) |
(→git reset とは?) |
||
行32: | 行32: | ||
--hard HEADの位置、インデックス、ワーキングツリーをすべて変更する。 | --hard HEADの位置、インデックス、ワーキングツリーをすべて変更する。 | ||
− | + | *ワーキングツリー:現在のディレクトリ | |
− | + | *インデックス:addが終わった状態 | |
− | + | *HEAD:commitが終わった状態(登録されている一番最後) | |
− | + | *commitが終わった直後は、HEAD、インデックス、ワーキングツリーの3つが同じ位置を示す。 | |
− | + | *ファイル等を変更するとワーキングツリーが先に進む。 | |
− | + | *addを行うと、インデックスがワーキングツリーの位置に進む | |
− | + | *さらにファイル等を修正すると、ワーキングツリーが先に進む(この場合、HEAD、インデックス、ワーキングツリーがすべて異なる状態) |
2014年7月10日 (木) 04:07時点における版
一括でgit rmする方法
実際のファイルを消したのち、git rmを一括でかけたくなる場合があります。
git rm `git ls-files --deleted`
特殊なファイル名が混じっている場合には下記を使ってみましょう
git status | grep deleted: | cut -c 15- | sed -e 's/ /\\ /g' | xargs git rm
特殊なファイル名をgit rmする方法
特殊なファイル名(例えば、?)のものが消えない場合があります。その際に利用します。
git rm "XX" git status | grep deleted: | cut -c 15- | sed -e 's/ /\\ /g' | xargs git rm
mergeがうまくいかないとき
下記のエラーメッセージに出会ったとき
error: Your local changes to the following files would be overwritten by merge:
git reset --hard HEAD
git reset とは?
HEAD の位置を変更するコマンド。オプションによってインデックス、ワーキングツリーの内容も変更できる。
git reset のオプションは? --soft、--mixed(オプションなしと同等)、--hard オプションがあり、影響度の小さい順に以下のようになる。
--soft HEAD の位置のみを変更する。インデックス、ワーキングツリーには影響なし。
--mixed (またはオプションなし) HEAD の位置とインデックスを変更する。ワーキングツリーには影響なし。
--hard HEADの位置、インデックス、ワーキングツリーをすべて変更する。
- ワーキングツリー:現在のディレクトリ
- インデックス:addが終わった状態
- HEAD:commitが終わった状態(登録されている一番最後)
- commitが終わった直後は、HEAD、インデックス、ワーキングツリーの3つが同じ位置を示す。
- ファイル等を変更するとワーキングツリーが先に進む。
- addを行うと、インデックスがワーキングツリーの位置に進む
- さらにファイル等を修正すると、ワーキングツリーが先に進む(この場合、HEAD、インデックス、ワーキングツリーがすべて異なる状態)