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

背景:

在管理一个版本库时,有时候不想要管理某些文件,如自己的测试文件,或涉及到有密码的配置文件。这时我们只需要把这些不想被管理的文件(文件夹)配置到 .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/BdsChangeDeviceD Mapper.classrmportrait/target/classes/cn/sz/changephone/BdsChangeDeviceD MidReducer.class’
rm ‘portrait/target/classes/cn/sz/changephone/BdsChangeDeviceD Reducer.classrmportrait/target/classes/cn/sz/changephone/BdsChangeDeviceD.classrmportrait/target/classes/cn/sz/changephone/OdsChangeDeviceD Mapper.class’
rm ‘portrait/target/classes/cn/sz/changephone/OdsChangeDeviceD Reducer.classrmportrait/target/classes/cn/sz/changephone/OdsChangeDeviceD.classrmportrait/target/classes/cn/sz/sex/MyIKAnalyzer.classrmportrait/target/classes/cn/sz/sex/TrainingData.classrmportrait/target/classes/cn/sz/sex/TrainingOnlineData Bean.class’
rm ‘portrait/target/classes/cn/sz/sex/TrainingOnlineData.class’
rm ‘portrait/target/classes/cn/sz/sourcedata/GetFeatureData Mapper.classrmportrait/target/classes/cn/sz/sourcedata/GetFeatureData Reducer.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/BdsChangeDeviceD Mapper.classdeletemode100644portrait/target/classes/cn/sz/changephone/BdsChangeDeviceD MidReducer.class
delete mode 100644 portrait/target/classes/cn/sz/changephone/BdsChangeDeviceD Reducer.classdeletemode100644portrait/target/classes/cn/sz/changephone/BdsChangeDeviceD.classdeletemode100644portrait/target/classes/cn/sz/changephone/OdsChangeDeviceD Mapper.class
delete mode 100644 portrait/target/classes/cn/sz/changephone/OdsChangeDeviceD Reducer.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/TrainingOnlineData Bean.class
delete mode 100644 portrait/target/classes/cn/sz/sex/TrainingOnlineData.class
delete mode 100644 portrait/target/classes/cn/sz/sourcedata/GetFeatureData Mapper.classdeletemode100644portrait/target/classes/cn/sz/sourcedata/GetFeatureData Reducer.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 命令就可以得到自己想要的结果了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!对于.gitignore文件不生效的问题,可以尝试以下几个解决办法: 1. 确认.gitignore文件位置:首先确认.gitignore文件是否位于项目的根目录下,且命名为正确(即以".gitignore"为文件名)。如果文件位置或命名不正确,git将无法正确识别该文件。 2. 提交之前清除缓存:如果你已经提交过文件到git仓库,那么.gitignore文件的规则将不会生效于已经被跟踪的文件。你需要使用如下命令清除缓存,使.gitignore生效: ``` git rm -r --cached . git add . git commit -m "Clear git cache and update .gitignore" ``` 3. 检查.gitignore规则:确保你在.gitignore文件中正确地定义了需要忽略的文件或目录。可以使用通配符、正则表达式等方式来指定规则。同时,还需要注意.gitignore文件的编码格式是否正确,一般来说UTF-8是一个常用的选择。 4. 检查忽略规则与实际情况是否匹配:有时候,.gitignore规则可能与实际情况不匹配,导致文件没有被正确地忽略。可以使用`git check-ignore`命令来检查某个文件是否被.gitignore忽略。 如果以上方法都没有解决问题,还可以尝试执行以下操作: - 确保你没有在其他位置设置了全局的.gitignore文件,它可能会覆盖项目中的.gitignore文件。 - 确保你的文件没有被.gitignore忽略过多次,或者被加入到了.gitignore的白名单中。 希望这些方法能够帮助你解决问题!如果还有其他疑问,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值