2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Git】コミットをクリーンにする手順。git diff -> git status

Posted at

個人用メモです。
Gitでコミットをクリーンにする方法

##git status
まずはgit statusでgitの状態を確認する。

$ git status
On branch xxx
Your branch is up to date with 'origin/xxx'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
  (commit or discard the untracked or modified content in submodules)
	modified:  frontend (new commits, modified content)

no changes added to commit (use "git add" and/or "git commit -a")

▼未対応部分
ステージしていないファイルが存在している。

Changes not staged for commit:
 modified:  frontend (new commits, modified content)

##git diff ステージに追加する前に`git diff`で変更内容を確認する。
コマンド 内容
git diff ステージ前のファイル差分確認
git diff --cached コミット前のファイル差分確認
$ git diff
diff --git a/frontend b/frontend
--- a/frontend
+++ b/frontend
@@ -1 +1 @@
-Subproject commit 228a7ffc18770d1aff28a46c7bb45057ee3d9fe5
+Subproject commit 228a7ffc18770d1aff28a46c7bb45057ee3d9fe5-dirty

Subprojectとあるので、サブモジュールのあるディレクトリに移動してからgit diffする必要がある。


##サブモジュールでgit diff ディレクトリを移動し内容を確認
$ cd frontend/
$ git diff
diff --git a/components/table.vue b/components/article/table.vue
index fb8185e..0e6fc28 100644
--- a/components/article/table.vue
+++ b/components/article/table.vue
@@ -171,10 +171,10 @@ export default {

+    //ドラッグ選択処理
     endCell(){
       this.selectedCells = []

-      // 基点となるrowとcol
       const startCell = this.startCell

コメントアウトを変更(追加と削除)したのみ。特に重要ではないので、今回はこのステージ前の変更を削除する。

##git checkout .
ステージ前の変更を消して、クリーンなコミットの状態にする。

git checkout <パス>
HEADを指定したパスに移動する。
ドット(.)を指定した場合、最新のコミットに戻る。

$ git checkout .
Updated 1 path from the index

##ステータスの確認 ルートディレクトリに戻って`git status`で状況を確認する。
$ cd ..
$ git status
On branch xxx
Your branch and 'origin/xxx' have diverged,
and have 181 and 3 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)

nothing to commit, working tree clean

nothing to commit, working tree clean。これで、gitがクリーンになった。


##git reset と git checkoutの違い 以下はどちらも最新のコミットに自分のHEADを移動する。(直近の変更を取り消す)

git reset --hard HEAD
git checkout .

コミット番号SHAを指定すれば、そのコミットまで戻れる。

git reset --hard 8b3e55e5
git checkout 8b3e55e5

###違い
両者の違いは、reset --hardは指定したコミット以降の履歴はすべて削除する。

checkoutはHEADの位置を移動するだけで、以降のコミットは残った状態になる。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?