Oh Shit, Git? 書籍出版
(ohshitgit.com)-
Git の問題解決方法
- Git は複雑でミスをしやすいツールであり、問題の解決方法を見つけるのが難しいことを強調している。
- さまざまな問題状況とその解決方法を、平易な英語で説明している。
-
問題状況と解決方法
-
誤った作業を元に戻したいとき
git reflogを使って以前の作業履歴を確認し、git reset HEAD@{index}で望む時点に戻す。
-
コミット後に小さな変更が必要なとき
- 変更後に
git add .とgit commit --amend --no-editを使って、最後のコミットに変更内容を追加する。 - 注意: 公開済みのコミットは修正しない。
- 変更後に
-
最後のコミットメッセージを変更したいとき
git commit --amendを使ってメッセージを変更する。
-
間違ったブランチにコミットしてしまったとき
- 新しいブランチを作成し、
git reset HEAD~ --hardで master ブランチからコミットを取り除いた後、新しいブランチに移動してコミットを保持する。
- 新しいブランチを作成し、
-
diff コマンドが動作しないとき
git diff --stagedを使って、ステージングされたファイルの差分を確認する。
-
以前のコミットを取り消したいとき
git logでコミットを見つけ、git revert [saved hash]を使ってそのコミットを取り消す。
-
ファイルの変更を元に戻したいとき
git logで以前のコミットを見つけ、git checkout [saved hash] -- path/to/fileでファイルを元に戻す。
-
-
その他
- リポジトリを初期状態に戻したいとき
git fetch origin、git checkout master、git reset --hard origin/masterを使ってリモートリポジトリと同期する。git clean -d --forceで追跡されていないファイルとディレクトリを削除する。
- リポジトリを初期状態に戻したいとき
-
注意事項
- このサイトは包括的なリファレンスではなく、さまざまな方法が存在しうることに言及している。
- 翻訳に参加した多くの人々への感謝を伝えている。
1件のコメント
Hacker Newsの意見
git checkoutの代わりにgit switchを使うほうがよいreset --hardを避け、間違ったブランチにコミットしたときは新しいブランチを作成して解決する方法を提案cherry-pickを使って解決する方法を提案git reflogを "re-flog" と誤って認識してしまい、覚えにくいgit commitは無意味に感じる