git在commit时候不commit某些文件

git在commit时候不commit某些文件

十月 29, 2020

前言

不commit某些文件分为两种情况。

  • 这个文件不push。
  • 已经push上去了,但是不想让后续的改动生效。比如含有密码的配置文件。

    第一种情况

    对于第一种情况,可以用gitignore文件解决,在最开始写好gitignore,然后git add .时候就不会将这些路径的文件add进去,这样自然不会commit,仓库里也不会有这个文件。下面是idea自动生成的springboot项目的gitignore一部分。
    1
    2
    3
    4
    5
    6
    7
    8
    HELP.md
    target/
    !.mvn/wrapper/maven-wrapper.jar
    !**/src/main/**/target/
    !**/src/test/**/target/
    # 注释
    #**/src/main/java/com/Property.java
    #**/src/main/resources/application.properties
    如果已经commit在缓存区当中,但又不想要了,可以下面这样
    1
    2
    git rm -r --cached src/main/java/test.java
    git add .
    这样最后commit并push,该文件不会存在于仓库当中。

    第二种情况

    现在我想保留仓库的properties文件,但同时不想把带有密码的properties提交上去,只保留原来push的没有密码的文件。
    就需要这样:
    1
    git update-index --assume-unchanged src/java/test.java
    这样再commit就不会把test.java提交上去了。

idea的细节,当你这么设置成功了之后,修改忽略的文件也不会变色,显示未提交,而是显示白色,表示已提交。