GITによる基本的な間違いの修正
6096 ワード
バージョン管理システムの主要な利点の1つは、大胆にコード化でき、誤りから回復できる.
しかし、これはGIT 101ではない.多くの場合よりも、開発者は自分たちが悪いコミットやマージを行うときに立ち往生見つける.いくつかの一般的な問題から簡単に回復するためにいくつかの有用なトリックを見てみましょう.
注:私は高度な例を使用して、すべてのレベルの開発者のために理解しやすい手順に焦点を当てません.
簡単に暖めましょう
最後のコミットメッセージの変更
あなたは最後のコミットメッセージでTyposを作りました、あるいは、あなたはそれをより記述的にするためにコミットメッセージを改善したいです.つの一般的な(そして間違った)実行は「初期のコミット」のような一時的なコミットメッセージを使用することです、そして、あなたが実際の発展部分でされるとき、あなたはあなたのコミット史が悪いようにしたくありません.
メッセージを変更します.あなたのコミットの新しい状態を示す以下の出力が表示されます.
最後のコミットにファイルを追加する
ファイルをコミットするのを忘れました.通常、別のコミットは問題を解決できます.しかし、これらのファイルを一緒にコミットする方が良い.誰かがコミットを見るならば、彼らはそれによって達成される目的を理解しなければならなくて、意味をなすために後のコミットを探す必要はありません.修正しましょう 欠落したファイル
Gitに最後のコミットに対して段階的な変更を行うように頼む.
再び、-修正命令を使用します
また、メッセージを変更したくない場合は、
shiftファイルを削除する
あなたのレポの一部であったデバイスからファイルを削除しました.この場合、Gitは履歴から失われたファイルを回復できます.
ファイルテストを削除したとします.txt.私がする必要があるすべては..
重要:ファイルの最後のコミットされたバージョンだけが返されます-削除の前に作られたどんなローカル変更も失われて、どんな非versionedされたファイルも回復されません.
今の構文は少し奇妙です-オプションなしで使用されます.しかし、gitが分岐名とファイル名を区別できるように、これは回避策です
注意:他のシナリオでは、ファイルを
間違った枝で犯される
新しいブランチに切り替えるのを忘れる速いペースの開発環境で、それは非常に一般的です.間違ったブランチで変更をコミットした場合、これを解決するのは簡単です. 現在の状態から新しい分岐を作成します.
間違った分岐を前の正しいコミットにリセットします.
ブランチの先頭を先頭に移動します. LATES - 1のコミット後に行われたすべての変更の現在の間違ったブランチを削除します. 注意:使用時にローカルの変更をなくさないように注意してください 新しい正しい枝に切り替える
プッシュされたコミットの削除
あなたが小さな断片のコードを届けたが、QAテストで失敗したか、回帰を導入したと仮定してください.さて、リリースブランチからコードを速やかに削除して、リリースに影響しないようにお願いしました.
あなたがどのように働くかを見ましょう. 訂正が必要なブランチに切り替える 復帰するコミットを見つけます.用途
復帰する
重要-これは歴史からコミットを削除しません.変更を戻す別のコミットを追加するだけです.これを視覚化するには、新しい歴史が次のようになります.
あなたは私については
しかし、これは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 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~
これは二つあります.--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 あなたは私については
Reference
この問題について(GITによる基本的な間違いの修正), 我々は、より多くの情報をここで見つけました https://dev.to/abh1navv/fixing-basic-mistakes-with-git-4m4lテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol