您的位置:首页 > 其它

已经在 stage 的文件再配置到 .gitignore 不生效

2017-09-25 12:27 465 查看

背景:

在管理一个版本库时,有时候不想要管理某些文件,如自己的测试文件,或涉及到有密码的配置文件。这时我们只需要把这些不想被管理的文件(文件夹)配置到 .gitignore 文件中即可。

但对于已经被 staged 文件,加入 .gitignore 文件时一定先要从 stage 中移除,.gitignore 配置才能生效。

下面就给出一个具体的实例:

本实例是不想要 target 文件夹下所以的文件,并保存。

1、把 target 配置到 .gitignore 文件中

protrait/target/*

2、在执行 git status 命令。

D:\project\sz\tagging-system>git status

On branch master

Your branch is up-to-date with ‘origin/master’.

Changes not staged for commit:

(use “git add …” to update what will be committed)

(use “git checkout – …” to discard changes in working directory)

modified:   portrait/target/classes/test/Test.class
modified:   portrait/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
modified:   portrait/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
modified:   portrait/target/portrait-1.0-SNAPSHOT-jar-with-dependencies.jar


3、发现 target 文件夹并没有消失,这是怎么回事?

这时需要把 target 从 stage 中删除

3.1、执行 git rm –cached portrait/target/*

D:\project\sz\tagging-system>git rm –cached portrait/target/*

rm ‘portrait/target/classes/cn/sz/changephone/BdsChangeDeviceDMapper.class′rm‘portrait/target/classes/cn/sz/changephone/BdsChangeDeviceDMidReducer.class’

rm ‘portrait/target/classes/cn/sz/changephone/BdsChangeDeviceDReducer.class′rm‘portrait/target/classes/cn/sz/changephone/BdsChangeDeviceD.class′rm‘portrait/target/classes/cn/sz/changephone/OdsChangeDeviceDMapper.class’

rm ‘portrait/target/classes/cn/sz/changephone/OdsChangeDeviceDReducer.class′rm‘portrait/target/classes/cn/sz/changephone/OdsChangeDeviceD.class′rm‘portrait/target/classes/cn/sz/sex/MyIKAnalyzer.class′rm‘portrait/target/classes/cn/sz/sex/TrainingData.class′rm‘portrait/target/classes/cn/sz/sex/TrainingOnlineDataBean.class’

rm ‘portrait/target/classes/cn/sz/sex/TrainingOnlineData.class’

rm ‘portrait/target/classes/cn/sz/sourcedata/GetFeatureDataMapper.class′rm‘portrait/target/classes/cn/sz/sourcedata/GetFeatureDataReducer.class’

rm ‘portrait/target/classes/cn/sz/sourcedata/GetFeatureData.class’

rm ‘portrait/target/classes/cn/sz/utils/FileUtil.class’

rm ‘portrait/target/classes/cn/sz/utils/MiscUtil.class’

rm ‘portrait/target/classes/test/Test.class’

rm ‘portrait/target/maven-archiver/pom.properties’

rm ‘portrait/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst’

rm ‘portrait/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst’

rm ‘portrait/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst’

rm ‘portrait/target/portrait-1.0-SNAPSHOT-jar-with-dependencies.jar’

3.2、执行 git status 命令

D:\project\sz\tagging-system>git status

On branch master

Your branch is up-to-date with ‘origin/master’.

Changes to be committed:

(use “git reset HEAD …” to unstage)

deleted:    portrait/target/classes/cn/sz/changephone/BdsChangeDeviceD$Mapper.class
deleted:    portrait/target/classes/cn/sz/changephone/BdsChangeDeviceD$MidReducer.class
deleted:    portrait/target/classes/cn/sz/changephone/BdsChangeDeviceD$Reducer.class
deleted:    portrait/target/classes/cn/sz/changephone/BdsChangeDeviceD.class
deleted:    portrait/target/classes/cn/sz/changephone/OdsChangeDeviceD$Mapper.class
deleted:    portrait/target/classes/cn/sz/changephone/OdsChangeDeviceD$Reducer.class
deleted:    portrait/target/classes/cn/sz/changephone/OdsChangeDeviceD.class
deleted:    portrait/target/classes/cn/sz/sex/MyIKAnalyzer.class
deleted:    portrait/target/classes/cn/sz/sex/TrainingData.class
deleted:    portrait/target/classes/cn/sz/sex/TrainingOnlineData$Bean.class
deleted:    portrait/target/classes/cn/sz/sex/TrainingOnlineData.class
deleted:    portrait/target/classes/cn/sz/sourcedata/GetFeatureData$Mapper.class
deleted:    portrait/target/classes/cn/sz/sourcedata/GetFeatureData$Reducer.class
deleted:    portrait/target/classes/cn/sz/sourcedata/GetFeatureData.class
deleted:    portrait/target/classes/cn/sz/utils/FileUtil.class
deleted:    portrait/target/classes/cn/sz/utils/MiscUtil.class
deleted:    portrait/target/classes/test/Test.class
deleted:    portrait/target/maven-archiver/pom.properties
deleted:    portrait/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
deleted:    portrait/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
deleted:    portrait/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
deleted:    portrait/target/portrait-1.0-SNAPSHOT-jar-with-dependencies.jar
deleted:    portrait/target/portrait-1.0-SNAPSHOT.jar


3.3、看还在,需要继续执行命令 git commit -m “describe for this commit”

D:\project\sz\tagging-system>git commit -m “commit DeviceSexAlgorithm.java”

[master ca4f9e0] commit DeviceSexAlgorithm.java

26 files changed, 234 insertions(+), 206 deletions(-)

create mode 100644 portrait/src/main/java/cn/sz/sex/DeviceSexAlgorithm.java

delete mode 100644 portrait/src/main/java/test/Test.java

delete mode 100644 portrait/target/classes/cn/sz/changephone/BdsChangeDeviceDMapper.classdeletemode100644portrait/target/classes/cn/sz/changephone/BdsChangeDeviceDMidReducer.class

delete mode 100644 portrait/target/classes/cn/sz/changephone/BdsChangeDeviceDReducer.classdeletemode100644portrait/target/classes/cn/sz/changephone/BdsChangeDeviceD.classdeletemode100644portrait/target/classes/cn/sz/changephone/OdsChangeDeviceDMapper.class

delete mode 100644 portrait/target/classes/cn/sz/changephone/OdsChangeDeviceDReducer.classdeletemode100644portrait/target/classes/cn/sz/changephone/OdsChangeDeviceD.classdeletemode100644portrait/target/classes/cn/sz/sex/MyIKAnalyzer.classdeletemode100644portrait/target/classes/cn/sz/sex/TrainingData.classdeletemode100644portrait/target/classes/cn/sz/sex/TrainingOnlineDataBean.class

delete mode 100644 portrait/target/classes/cn/sz/sex/TrainingOnlineData.class

delete mode 100644 portrait/target/classes/cn/sz/sourcedata/GetFeatureDataMapper.classdeletemode100644portrait/target/classes/cn/sz/sourcedata/GetFeatureDataReducer.class

delete mode 100644 portrait/target/classes/cn/sz/sourcedata/GetFeatureData.class

delete mode 100644 portrait/target/classes/cn/sz/utils/FileUtil.class

delete mode 100644 portrait/target/classes/cn/sz/utils/MiscUtil.class

delete mode 100644 portrait/target/classes/test/Test.class

delete mode 100644 portrait/target/maven-archiver/pom.properties

delete mode 100644 portrait/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst

delete mode 100644 portrait/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst

delete mode 100644 portrait/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst

delete mode 100644 portrait/target/portrait-1.0-SNAPSHOT-jar-with-dependencies.jar

delete mode 100644 portrait/target/portrait-1.0-SNAPSHOT.jar

3.4、再执行 git status 看下

D:\project\sz\tagging-system>git status

On branch master

Your branch is ahead of ‘origin/master’ by 2 commits.

(use “git push” to publish your local commits)

nothing to commit, working tree clean

4、这下就 OK 了。

5、简单总结下:

如果不想再管理已经被 stage 的文件(文件夹)

可以按照下面的步骤来处理。

1、先从 stage 中删除不想再被管理的文件(文件夹)

git rm –cached file

2、提交更新

git commit -m “describe for this commit”

3、把该文件(文件夹)配置到 .gitignore 文件中,当然了这一步也可以先做。

4、在执行 git status 命令就可以得到自己想要的结果了。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  管理