Git - Comment lister les fichiers validés qui vont pousser?
Dans Git, nous pouvons utilisergit show commit_id --name-only pour lister tous les fichiers validés qui vont pousser vers le référentiel distant.
P.S The git status didn’t show the committed files.
1. Étude de cas
En dessous du cas, git ajoute et a commis trop de fichierstarget/* indésirables accidentellement, comment supprimer les fichiers validés en local? (Ne pas pousser vers un serveur git distant)
Terminal
$ 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. Solution
2.1 git log to display all the commit_id, the first one is the last commit_id, copy it.
Terminal
$ 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.
Terminal
$ 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.
Terminal
$ 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/