Git変更履歴の管理


きおくてつづき
ファイルを配置領域にアップロード(追加)
Git管理されていない追跡されていないファイルをGitの管理下に配置し、先にコミットした変更ファイルをStaging Areaに配置します.
git add tiger.yml
git add .
を選択します.すべてのファイル(.gitignoreに書き込まれたファイルを除く)を示します.
中心による追加
各Hunkユニットは、追加するかどうかを決定することができる.
git add -p
Hunkは、ファイル内で変更される単位であり、変更されていない部分に基づいて区別されます.
ファイル+add(rm)のクリア
git rm tigers.yml
ファイル名+add(mv)の変更
git mv tigers.yml 0giri.yml
駐在領域ファイルの現在の時点を記録する(commit)
Staging Areaに加えた変更の現在の時点を記録します.
git commit
git commit -m "Commit Message"
git commit -am "With Add and Messaging"
git commit -v
-mオプション:メッセージ合成をコミットコマンドに追加できます.
-amオプション:addコマンドが含まれます.(追跡されていないファイルがない場合に使用可能)
-vオプション:「≪メッセージの作成|Create Message|emdw≫」画面の下部に、変更部分に関する情報が出力されます.
修正Commit(修正)
現在の変更を以前のコミットに追加したり、コミットメッセージを変更したりできます.
git commit --amend
git commit --amend -m "modify commit message"
git commit --amend -am "modify commit message"
一時停止中の変更(stash)
これは、他のタスクを遅らせる必要がある場合に役立ちます.
トレース内の変更を個別に保存し、以前のコミットに戻ります.
別のブランチから保存したタスクを読み込み、操作を続行することもできます.
git stash
git stash -p
git stash -m "Add Stash"
git stash list
git stash clear
git stash branch test-stash

git stash apply stash@{1}
git stash drop stash@{1}
git stash pop stash@{1}
-pオプション:タスクをセンターに保存できます.
-mオプション:メールとともに保存できます.
List:保存したタスクのリストを表示できます.
clear:保存したすべてのジョブを削除します.
branch:新しいブランチを作成してポップアップします.(競合時にmerge/rebaseを使用)
apply:保存されたジョブを読み込みます.
drop:保存したジョブを削除します.
pop : apply + drop
(stash番号が指定されていない場合は、最後のタスクが適用されます)
リカバリプロセス
変更したファイルを以前のコミットに復元(復元)
Staging AreaにアップロードされていないWorking Directoryのファイルを前のコミットに復元します.
git restore tiger.yml
git restore --source=65989fe... tiger.yml
git restore --staged tiger.yml
--source:ファイルを特定のコミットポイントに復元します.
--階層化:スナップショットに含まれないように、コミットされていないStaging Areaのファイルを階層化します.
指定した時点をクリアした後のすべてのコミットとリカバリ(リセット)
ポイントを返した後のコミットはすべて削除され、オプションに従って変更が処理されます.
git reset --soft 0529ba2b...
git reset --mixed 0529ba2b...
git reset --hard 0529ba2b...
git reset --hard HEAD~3
git reset --hard
--soft:変更をRepositoryからStaging Areaに移動
--ブレンド(default):変更をRepositoryからWorking Directoryに移動
--hard:変更を完全に削除
リカバリポイント使用を指定しない:プロジェクトは現在のHEAD位置のコミット情報にリセットされます.(ヘッド位置が変更されていない場合は、前回のコミットに戻ります)
特定のコミットに対する変更のみをリカバリ(リストア)
現在の状態では、特定のコミットされた変更のみがリカバリされます.
git revert e80f16eb...
git revert --continue
git revert --no-commit
--continueオプション:コミット後の変更履歴と競合する可能性があります.競合を解決した後、このオプションを使用してリストアを続行します.
--no-commitオプション:すぐにコミットせずに、特定のコミットの変更履歴を返します.(コミットに追加の変更を追加する場合)
実行されたコマンドを返します(reflog)
コミットではなく、私が発行したコマンドに従ってリカバリできます.
誤ってリセットしてコミットした場合は、reflectでコマンド前のコマンドのハッシュ値をチェックし、その値にリセットして返すことができます.
git reflog
git reset --hard 092d5d4
操作履歴の変更
rebase操作を使用する前のコミット
過去のコミットを変更すると、以降のすべてのコミットに影響するため、rebase方式を使用します.
指定したコミットの後、操作ごとにコミットするように再設定します.
このときpickというデフォルト値は、各コミットの前に書いて、次の5文字に変更してコミットを修正すればよい.
git rebase -i (수정할 가장 오래된 커밋의 직전커밋)
git rebase -i 25b1bb...
rebase-iの変更コミットコマンド
  • p,pick:コミットの保持
  • r、書き換え:変更コミットメッセージ
  • e,edit:修正を停止(コミット完了後に移動)
  • d,drop:削除コミット
  • s,Squash:コミットを以前のコミットにマージする
  • マージのコミット:s>コミットメッセージへの統合
    配布コミット:e>reset HEAD~コミット前にリカバリ>配布コミット>rebase-continue