4 ポイント 投稿者 GN⁺ 2025-01-18 | 1件のコメント | WhatsAppで共有
  • 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 origingit checkout mastergit reset --hard origin/master を使ってリモートリポジトリと同期する。
      • git clean -d --force で追跡されていないファイルとディレクトリを削除する。
  • 注意事項

    • このサイトは包括的なリファレンスではなく、さまざまな方法が存在しうることに言及している。
    • 翻訳に参加した多くの人々への感謝を伝えている。

1件のコメント

 
GN⁺ 2025-01-18
Hacker Newsの意見
  • git checkout の代わりに git switch を使うほうがよい
  • reset --hard を避け、間違ったブランチにコミットしたときは新しいブランチを作成して解決する方法を提案
    • 現在の状態から新しいブランチを作成
    • 前のコミットに切り替え
    • master ブランチをそのコミットで上書き
    • 作業ブランチに切り替え
  • 間違ったブランチにコミットした場合、cherry-pick を使って解決する方法を提案
    • 正しいブランチに切り替え
    • master の最後のコミットを取り込む
    • master から削除
  • 「もうダメだ」という状況での git の使い方を提案
    • origin の最新状態を取得
    • 追跡対象ファイルを復元
    • 追跡されていないファイルとディレクトリを削除
    • master をリモート版にリセット
  • Git 学習では最初に UI を勧めるのがよい
    • CLI のほうが速いと感じたら後で使えばよい
    • まずはツリーを視覚的に操作する方法を理解すべき
  • hg+mercurial の検索結果があるのはうれしい
    • hg が DVCS 戦争で敗れたのは残念
  • Git コマンドの引数は覚えにくい
    • コマンドは発見しやすくも、簡単に覚えられるものでもない
  • 2025年4月に git の20周年を祝うとき、奇妙な気分になりそう
    • GitHub 効果が新しい VCS の必要性をなくしたのかもしれない
  • 「Oh shit」という状況では、ローカルリポジトリを削除して再度クローンする方法を使う
    • 95% のケースでうまくいく
  • git reflog を "re-flog" と誤って認識してしまい、覚えにくい
  • Git ユーザーではないが、git commit は無意味に感じる
    • コミットはプッシュまたはマージされるときにだけ重要
  • Git の利点の一つは、オブジェクトを作成した時点で作業を失わないこと
    • こまめにコミットすることが重要