コミット操作2
5126 ワード
前回のレッスンでは、コミット、コミット履歴の処理、およびコミットメッセージの作成方法、および最新のコミットの変更方法について学習しました.
このセクションでは、コマンドラインにaliasを設定し、2つのコミットの違いを表示し、headの意味を理解し、git resetをさらに学習します.
📤 長いコマンドで別名を設定する
これまでgit logコマンドを使用してコミット履歴を表示してきました.そして、1行ずつコミットするためにprettyとonelineオプションをあげました.しかし、選択肢が少し長いと思いますか?こんな長い選択肢は毎回貼って使うので、ちょっと面倒です.
Gitには、長さがこのように長い場合、コマンド全体に別名を追加して、別名の代わりにする機能があります.別名をalias、別名の動作をaliasingと呼びます.やってみる?
私たちは後で
git log --pretty=oneline
にgit history
というあだ名をつけます.このときconfig
という命令を使えばいいのですでもこのカスタマーサービスはちょっと見覚えがありますはい、そうです.私たちは最初に提出する前にこのコマンドを使用しました.git config user.name 'tataki26'
および.このコマンドの機能は、ユーザーの情報を保存し、誰がコミットを残したかを見ることです.alisingも同様の設定を行うことができます.git config alias.history 'log --pretty=oneline'
これにより、get history
が入力されても、コミットごとに1行が表示されます.したがって、get historyを使用して代用します.historyは、元のGit上のコマンドではなく、ランダムに作成された別名であることを覚えておいてください.このエイリアスを使用すると、長いコマンドの使用を簡略化できます.
📤 2つのコミット間の差異の表示
コミット履歴を表示する場合は、コミットAとコミットBの間の変更を表示します.たとえば、どのコードが追加されたか、削除されたかを知りたいです.
git historyを実行して、さっき指定した別名が正しいかどうかを確認します.
よく動いていますね出力をよく見ると、READMEファイルが生成された部分と修正された部分が表示されます.2つの提出の違いを見てみましょう.このとき使用するコマンドは
git diff
です.diffはdifferenceの略で、「違い」を意味する.この後ろに違いを見たい2つの提出IDを書けばいいです順番は先に提出したIDから記入するべきです.
git diff 309f 4ee6
次に、2つのコミットの違いを表示できます.上の画面はよく知っていますよね?前のGit showと似ています.git showと同様に、
-
を以前のコミットと解釈し、+
を以降のコミットと解釈することができる.最初のREADMEファイルは1行しかありませんが、その後のコミット中に3行に引き伸ばされ、いくつかのタグドロップダウン記号が追加されていることがわかります.
📤 HEADの意味
コミット履歴を再度確認すると、
HEAD
が表示されます.gitでは、HEADは特定のコミットの特殊な意味を指す.その提出は何ですか.これは状況によって異なりますが、HEADは通常、最近のコミットを指します.これはHEADの位置からしかわかりません.でもなぜHEADが必要なの?プロジェクトディレクトリの別の名前の作業ディレクトリまたは作業ツリーを使用することを学びました.この作業ディレクトリは、HEADが示すコミットによって異なります.
作業ディレクトリの内部を確認しましょう.
今まで作成したファイルとディレクトリが見えました.書類の内容を一つ一つ見てみましょう.
まず、計算機です.pyファイル.
次はライセンスファイルです.
最後に、READMEファイルを見てみましょう.
最近コミットされた3つのファイルがすべて正常に保たれていることを確認できます.これは、HEADが最近のコミットを指しているためかもしれません.ただし、HEADが他のコンテンツを指している場合、working directoryのコンテンツはいつでも変化する可能性があります.つまり、HEADが最新のコミットよりも早いコミットを指している場合、作業ディレクトリ内のファイルは以前のコミットに従って変化します.
📤 前のコミットを使用してgitをリセット
HEADは現在、「Add function」にコミットされています.この提出は最近やったイベントですよね?このコミットよりも早いコミットをHEADに指示するにはどうすればいいですか?
git reset
という名前のコマンドを使えばいいです.resetは初期化の意味ですよね?「このコマンドの後に、
--hard
オプションと行きたい提出IDを書きます.」「Add Function」提出中、「Make README.mdlookniceに移動してコミットします.git reset --hard 4ee6
ではHEADは『Make README』md'に移動した文を表示します.提出履歴を再確認します.
今回のHEADは『MakeREADME』私はmd'を指しています.上の提出内容が消えました.
以前HEADが指定したコミットにより、作業ディレクトリの構成が変更されます.作業ディレクトリの構成が本当に変更されたかどうか見てみましょう.
「Add Function」を送信するのは計算機です.これはpyファイルに乗数を追加する操作を反映します.しかしHEADは以前のコミットを指し,追加した乗算関数は消滅した.このHEADは『Make README』これは、md'コミットがその後コミットされた内容を反映していないためである.
Git resetでは、HEADが過去のコミットを指すことができ、作業ディレクトリの内容も過去のコミットに戻ることができます.
Git resetは、以前のコミットに戻るときに使用されることを再確認します.開発の過程で、特定の提出が行われていましたが、内容があまりにも不満だったので、過去に戻りたい瞬間がありました.git resetを使用して、戻りたいコミットに戻り、コミットから新しい操作を実行できます.
📤 gitリセットオプションの概要
git resetには
--hard
のほかにも多くの選択肢があります.これらの選択肢を学ぶ前に、理解すべきことを一緒に見てみましょう.まず,git resetのどのオプションにおいても,HEADが過去にコミットした結果を指すのは同じである.ただし、workdirectoryの内部もコミットによって変更されるかどうかは、オプションによって異なります.これはhardオプションのみに適用される結果です.残りの結果は次の章で確認します.
次に、staging areaのファイルがコミットされた後にどのように変化するかを見てみましょう.コミットプロセスには、プロジェクトディレクトリのファイルを変更し、gitを追加してstaging領域にアップロードすることが含まれます.しかし、提出後、staging areaのファイルはどうなりますか?
コミットはstaging領域を初期化しません.つまり、staging領域のファイルは消えません.ただし、Git addを続行するたびにstaging areaは新しいファイルを追加するか、元のファイルを新しいバージョンに置き換えます.
この2つのポイントを覚えてこそ、次のGit resetオプションをよりよく理解することができます.覚えておいてください.staging areaのファイルは提出しても、ずっと残っています.
このレッスンでは、コマンドに別名を指定する方法、2つのコミットの違いを表示する方法、最新のコミットされたHEADを指す方法、過去にコミットされたGit resetに戻る方法について学習しました.
次の授業は提出を処理する最後の授業です.git resetの3つのオプションと、コミットにタグを追加する方法について学習します.
* 이 자료는 CODEIT의 'Git으로 배우는 버전 관리' 강의를 기반으로 작성되었습니다.
Reference
この問題について(コミット操作2), 我々は、より多くの情報をここで見つけました https://velog.io/@tataki26/커밋-다루기-2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol