git reset --hard コミット
git checkout コミット ファイル
git reset HEAD^
git reset コミット
git reset --soft コミット
git reset ファイル
上記でファイル名がコミットを指してしまう場合は -- をファイル名の前につける
git reset -- ファイル
git log コミットA..コミットB
ブランチとの差分をひとつにまとめてマージしたものをインデックスとワークツリーに反映
git merge --squash ブランチ
上記に続けて以下を行えば、インデックスをクリアしてワークツリーだけマージされた状態になる
git reset HEAD
git cherry-pick -x コミット
git cherry-pick -n コミット
git commit --amend
インデックスに何も入っていなければコミットメッセージの変更になる -mでメッセージを指定することも可能
git commit --amend --no-edit
コミットメッセージ変更無し
git commit -a --amend --no-edit
デフォルトのaddも一緒に行う
git add -p ファイル
sで追加範囲を分割できる? eで直接編集。追加したくない+で始まる行を、丸ごと削除してしまえばいい。
git reset --mergeで戻る?
git mergeのコンフリクトはgit statusで状態(unmerged:)を確認できる <<<<<<<、=======、>>>>>>>の部分を編集してgit addして、 git statusで状態(modified:)を確認、 その後
git commit
そのコミットは、指定したブランチをマージした後に、 マージ前のカレントブランチには存在しなかった修正を取り除いた、ということになる。
git merge -s ours ブランチ
Bを省略した場合はHEADが指定されたことになる。 基本は… AがBの祖先ならば、BとB'は同じコミットになる。...(1) AがBの祖先では無く、AとBが共通の祖先を持つ場合は、B'はBにAをマージしたコミットになる。 -iオプションをつけることで(あと発生したコンフリクトに対処するとき)B'の内容を任意に変更できる。 (1)の場合は-iオプションをつけなければ実質何も起こらない。-iオプションで編集することで、 履歴をまとめたり順番を変えることでB'をBと同じ内容の違うコミットにしたり、 内容自体もBとは異なるコミットにできる。 AとBが共通の祖先を持たない場合にはどうなるのかな?
git commit --allow-empty -m 'Initialize repository'
git commit --amend --reset-author
Focused dashboard,!Fine-grained permissions..?Repositoryne..!