Git –プッシュしようとしているコミット済みファイルをリストする方法
Gitでは、git show commit_id --name-only
を使用して、リモートリポジトリにプッシュするすべてのコミット済みファイルを一覧表示できます。
P.S The git status
didn’t show the committed files.
1. ケーススタディ
以下の場合、gitは誤ってあまりにも多くの不要なtarget/*
ファイルを追加してコミットしましたが、ローカルでコミットされたファイルを削除するにはどうすればよいですか? (Havenはリモートgitサーバーにプッシュしません)
ターミナル
$ git commit -m "test uncommit" [master f5f3fa6] test uncommit 7 files changed, 3603 insertions(+) create mode 100644 src/main/java/com/example/benchmark/BenchmarkMap.java create mode 100644 target/generated-sources/annotations/com/example/benchmark/generated/BenchmarkForwardReverseLoop_forwardLoop_jmhTest.java create mode 100644 target/generated-sources/annotations/com/example/benchmark/generated/BenchmarkForwardReverseLoop_jmhType.java create mode 100644 target/generated-sources/annotations/com/example/benchmark/generated/BenchmarkForwardReverseLoop_jmhType_B1.java create mode 100644 target/generated-sources/annotations/com/example/benchmark/generated/BenchmarkForwardReverseLoop_jmhType_B2.java create mode 100644 target/generated-sources/annotations/com/example/benchmark/generated/BenchmarkForwardReverseLoop_jmhType_B3.java create mode 100644 target/generated-sources/annotations/com/example/benchmark/generated/BenchmarkForwardReverseLoop_reverseLoop_jmhTest.java
2. 溶液
2.1 git log
to display all the commit_id, the first one is the last commit_id, copy it.
ターミナル
$ git log commit f5f3fa6e012adf5d2caf2e1310421ad8258950d3 (HEAD -> master) Author: example <[email protected]> Date: Mon Nov 26 16:02:00 2018 +0800 test uncommit commit 3250f725962ba12b6695c083895dd4c3533545a2 (origin/master) Author: example <[email protected]> Date: Mon Nov 25 15:00:17 2018 +0800 init commit b28f3199e10d2aed5426342f6ed172ba7f710483 Author: example <[email protected]> Date: Fri Nov 23 17:27:25 2018 +0800 update readme
2.2 git show commit_id --name-only
to display all the files committed in the specified commit_id.
ターミナル
$ git show f5f3fa6e012adf5d2caf2e1310421ad8258950d3 --name-only commit f5f3fa6e012adf5d2caf2e1310421ad8258950d3 (HEAD -> master) Author: example <[email protected]> Date: Mon Nov 26 16:02:00 2018 +0800 test uncommit src/main/java/com/example/benchmark/BenchmarkMap.java target/generated-sources/annotations/com/example/benchmark/generated/BenchmarkForwardReverseLoop_forwardLoop_jmhTest.java target/generated-sources/annotations/com/example/benchmark/generated/BenchmarkForwardReverseLoop_jmhType.java target/generated-sources/annotations/com/example/benchmark/generated/BenchmarkForwardReverseLoop_jmhType_B1.java target/generated-sources/annotations/com/example/benchmark/generated/BenchmarkForwardReverseLoop_jmhType_B2.java target/generated-sources/annotations/com/example/benchmark/generated/BenchmarkForwardReverseLoop_jmhType_B3.java target/generated-sources/annotations/com/example/benchmark/generated/BenchmarkForwardReverseLoop_reverseLoop_jmhTest.java
2.3 Undo the last commit with git reset --soft HEAD~1
, move the mistakenly committed files back to the staging area.
ターミナル
$ git reset --soft HEAD~1 $ git status On branch master Your branch is up to date with 'origin/master'. Changes to be committed: (use "git reset HEAD..." to unstage) new file: src/main/java/com/example/benchmark/BenchmarkMap.java new file: target/generated-sources/annotations/com/example/benchmark/generated/BenchmarkForwardReverseLoop_forwardLoop_jmhTest.java new file: target/generated-sources/annotations/com/example/benchmark/generated/BenchmarkForwardReverseLoop_jmhType.java new file: target/generated-sources/annotations/com/example/benchmark/generated/BenchmarkForwardReverseLoop_jmhType_B1.java new file: target/generated-sources/annotations/com/example/benchmark/generated/BenchmarkForwardReverseLoop_jmhType_B2.java new file: target/generated-sources/annotations/com/example/benchmark/generated/BenchmarkForwardReverseLoop_jmhType_B3.java new file: target/generated-sources/annotations/com/example/benchmark/generated/BenchmarkForwardReverseLoop_reverseLoop_jmhTest.java new file: target/generated-sources/annotations/com/example/benchmark/generated/BenchmarkLoop_jmhType.java Untracked files: (use "git add ..." to include in what will be committed) .idea/