GITによる基本的な間違いの修正


バージョン管理システムの主要な利点の1つは、大胆にコード化でき、誤りから回復できる.

しかし、これはGIT 101ではない.多くの場合よりも、開発者は自分たちが悪いコミットやマージを行うときに立ち往生見つける.いくつかの一般的な問題から簡単に回復するためにいくつかの有用なトリックを見てみましょう.
注:私は高度な例を使用して、すべてのレベルの開発者のために理解しやすい手順に焦点を当てません.
簡単に暖めましょう

最後のコミットメッセージの変更
あなたは最後のコミットメッセージでTyposを作りました、あるいは、あなたはそれをより記述的にするためにコミットメッセージを改善したいです.つの一般的な(そして間違った)実行は「初期のコミット」のような一時的なコミットメッセージを使用することです、そして、あなたが実際の発展部分でされるとき、あなたはあなたのコミット史が悪いようにしたくありません.
git commit --amend
デフォルトでは、Amendは以前のコミットにすべての段階的な変更を適用し、コミットメッセージを編集できるエディタを開きます.

メッセージを変更します.あなたのコミットの新しい状態を示す以下の出力が表示されます.
[main 1a7b82d] Adding jsons
 Date: Sat Jun 19 11:16:19 2021 +0530
 3 files changed, 242 insertions(+)
 create mode 100644 package-lock.json
 create mode 100644 package.json
 create mode 100644 resume.json
より良い方法-変更メッセージは、コマンドライン自体を使用してエディタを使用して
git commit --amend -m "Adding jsons"

最後のコミットにファイルを追加する
ファイルをコミットするのを忘れました.通常、別のコミットは問題を解決できます.しかし、これらのファイルを一緒にコミットする方が良い.誰かがコミットを見るならば、彼らはそれによって達成される目的を理解しなければならなくて、意味をなすために後のコミットを探す必要はありません.修正しましょう
  • 欠落したファイル
  • git add .gitignore
    
  • Gitに最後のコミットに対して段階的な変更を行うように頼む.
    再び、-修正命令を使用します
  • git commit --amend
    
    再びエディタを開きますが、今では新しいファイルがコミットに追加されます.

    また、メッセージを変更したくない場合は、--amend --no-edit . これは、コミットメッセージを変更することを期待しないエディタを開くことはありません.それは即座に変更を適用し、最後のコミットを出力します.
    git commit --amend --no-edit
    [main 65f3784] Adding jsons
     Date: Sat Jun 19 11:16:19 2021 +0530
     5 files changed, 246 insertions(+)
     create mode 100644 .gitignore
     create mode 100644 package-lock.json
     create mode 100644 package.json
     create mode 100644 resume.json
     create mode 100644 test.txt
    

    shiftファイルを削除する
    あなたのレポの一部であったデバイスからファイルを削除しました.この場合、Gitは履歴から失われたファイルを回復できます.
    ファイルテストを削除したとします.txt.私がする必要があるすべては..
    git checkout -- test.txt
    
    これは、テストの最後のコミットバージョンをもたらすでしょう.あなたのレポからのtxt.
    重要:ファイルの最後のコミットされたバージョンだけが返されます-削除の前に作られたどんなローカル変更も失われて、どんな非versionedされたファイルも回復されません.
    今の構文は少し奇妙です-オプションなしで使用されます.しかし、gitが分岐名とファイル名を区別できるように、これは回避策ですgit checkout branch-name ).
    注意:他のシナリオでは、ファイルをrevert and reset しかし、私は別々に彼らをカバーします.私は、それらが基本的なシナリオであると思いません.

    間違った枝で犯される

    新しいブランチに切り替えるのを忘れる速いペースの開発環境で、それは非常に一般的です.間違ったブランチで変更をコミットした場合、これを解決するのは簡単です.
  • 現在の状態から新しい分岐を作成します.
  • git branch new-correct-branch 
    
    これはすでに新しいコミットを作成します.
  • 間違った分岐を前の正しいコミットにリセットします.
  • git reset --hard HEAD~
    
    これは二つあります.
  • ブランチの先頭を先頭に移動します.
  • LATES - 1のコミット後に行われたすべての変更の現在の間違ったブランチを削除します.
  • 注意:使用時にローカルの変更をなくさないように注意してください--hard . 間違ったコミットの後により多くの変更があるならば、あなたが最初に彼らを隠しておくようにしてください.
  • 新しい正しい枝に切り替える
  • git checkout new-correct-branch
    
    新しいブランチには既に必要なコミットがあります.あなたの開発を継続して変更をプッシュすることができます.

    プッシュされたコミットの削除
    あなたが小さな断片のコードを届けたが、QAテストで失敗したか、回帰を導入したと仮定してください.さて、リリースブランチからコードを速やかに削除して、リリースに影響しないようにお願いしました.

    あなたがどのように働くかを見ましょう.
  • 訂正が必要なブランチに切り替える
  • 復帰するコミットを見つけます.用途git log またはUIのデスクトップまたはブラウザのようなUI.コミットIDを見つけます.git log 以下のコミットを返します.
  • A -> B -> C -> D -> E 
    
    Cがターゲットコミットであるとしましょう.C .のハッシュを保存してください.
  • 復帰する
  • git revert 1df455v631fca -m "Reverting commit"
    
    これは現在のブランチからCによって行われる変更を削除します.
    重要-これは歴史からコミットを削除しません.変更を戻す別のコミットを追加するだけです.これを視覚化するには、新しい歴史が次のようになります.
    A -> B -> C -> D -> E -> -C
    
    ホープこれらの手順はあなたの毎日のITの使用量を改善するのに役立ちます.私はgitのいくつかの深いトピックを取得します.これらのコマンドのいくつかのユースケースを理解したいなら、チェックアウトしてくださいthis Atlassian tutorial
    あなたは私については