Git 忽略对本地某个文件修改

方式一 git rm --cached

  • 项目中的某个文件(比如stupid.txt)已经被commit,并push到server了,这时发现stupid.txt不应该被git管理,
    同步到团队每个开发人员那里,这时在.gitignore文件里面添加"stupid.txt"已经不起作用了。
    因为.gitignore只对从来没有commit过的文件起作用。这时可以

    git rm --cached stupid.txt //从版本库中rm 文件
    

    如果要删除目录下所有文件包括子目录中的

    git rm -r --cached directory_name
    

    在.gitignore中添加要忽略的文件

    commit

    push

    其他成员pull,working directory中对应的文件会删除,所以如果文件重要,要提前备份。

方式二  git update-index --assume-unchanged 加文件路径

如果只是自己这里不想把stupid.txt的改动继续commit,

git update-index --assume-unchanged  /src/main/java/stupid.txt

这个文件修改之后,git status不会显示这个文件有变化

补充:

项目开发过程中,会遇到本地配置文件每个开发人员不同的情况,但如果遇到类似数据库配置这种最终需要加入 git 版本控制的配置,则会陷入两难境地。要么不跟踪,要么有人提交后其他人同步下来必须手动修改,非常麻烦。其实,对于已被纳入版本管理的文件,git 也提供了很好的解决办法。

告诉git忽略对已经纳入版本管理的文件 test.txt 的修改,git 会一直忽略此文件直到重新告诉 git 可以再次跟踪此文件

$ git update-index --assume-unchanged test.txt

告诉 git 恢复跟踪

$ git update-index --no-assume-unchanged test.txt

查看当前被忽略的、已经纳入版本库管理的文件:$ git ls-files -v | grep -e "^[hsmrck]"

https://www.cnblogs.com/xkkdev/p/15908937.html

https://blog.csdn.net/sinat_30603081/article/details/124877886

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在git中,有两种方法可以指定文件不提交。 第一种方法是使用`.gitignore`文件。这个文件可以用来指定哪些文件文件夹不需要提交到版本控制系统中。可以在`.gitignore`文件中列出不需要提交的文件文件夹的名称或模式,git会根据这些规则来判断哪些文件不需要被提交。`.gitignore`文件可以放置在项目的根目录下,也可以放置在子目录中,它们具有递归性,会自动生效。 第二种方法是使用`git update-index`命令。可以使用`git update-index --assume-unchanged <file>`命令来指定某个文件不提交。这条命令将设置一个临时位标记,告诉git这个文件在下一次提交中应该被忽略。如果想要重新跟踪这个文件,可以使用`git update-index --no-assume-unchanged <file>`命令来移除这个位标记。 需要注意的是,`git update-index`命令只会作用于本地仓库,不会修改其他人的仓库。所以如果希望其他人也不提交某个文件,需要在共享仓库中设置相应的`.gitignore`文件,或者进行代码审查等等其他措施来确保这些文件不会被提交。 ### 回答2: 在Git中,我们可以通过以下几种方法来指定文件不提交: 1. .gitignore文件:创建一个名为“.gitignore”的文件,并在其中列出不需要提交的文件文件夹的名称。每一行表示一个文件文件夹,使用通配符来指定一类文件。例如,为了忽略所有以“.txt”结尾的文件,可以在“.gitignore”文件中添加“*.txt”。git在提交时会自动忽略这些文件。 2. git update-index命令:可以使用git update-index命令来指定一个或多个文件不被Git追踪和提交。命令的使用方法为:“git update-index --assume-unchanged <file>”,其中<file>为需要忽略文件名。这个命令会将文件的“已修改标记”设置为“已忽略”,使得Git不再追踪这些文件的变化。 3. .git/info/exclude文件:与.gitignore文件类似,.git/info/exclude文件是一个只能在本地有效的文件。它也可以用来指定不需要提交的文件文件夹,但是不会被Git版本控制。在这个文件中添加的规则将只适用于当前的仓库。 需要注意的是,这些方法只是让Git不追踪和提交指定文件,但是并不会从仓库中删除这些文件。如果要删除仓库中的文件,需要使用git rm命令。 总结起来,通过.gitignore文件git update-index命令和.git/info/exclude文件,我们可以方便地指定哪些文件不需要提交到Git仓库中,以满足项目开发中不同文件的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lxw1844912514

你的打赏就是对我最大的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值