git 常用命令总结

8 篇文章 0 订阅
6 篇文章 0 订阅

备注: 这里记录一些复杂的或者有意义的git命令

本地更改不上传使用skip-worktree  

skip-worktree  assume-unchanged 

背景:我对不想提交到存储库的文件进行了本地更改。 它是用于在服务器上构建应用程序的配置文件,但我想使用不同的设置在本地构建。 自然,当我将“git status”作为要暂存的内容时,该文件总是会显示出来。 我想隐藏这个特定的更改而不是提交它。 我不会对文件进行任何其他更改。澄清一下,使用 .gitignore 不是我想要的,因为这只会阻止添加新文件。 我想忽略对存储库中已有文件的更改。经过一番挖掘,我看到了 2 个选项: assume-unchanged和skip-worktree 。 以前的问题在这里谈到了它们,但并没有真正解释它们的区别。

命令:

    git update-index --skip-worktree changedfile.txt
    git update-index --no-skip-worktree changedfile.txt
    git ls-files -v | grep '^S\ '   

    git update-index --assume-unchanged Constants.java  //忽略跟踪
    git update-index --no-assume-unchanged Constants.java  //恢复跟踪
    git ls-files -v | grep '^h\ '                           //查看那些被忽略
  
     git ls-files -v | grep '^h' | awk '{print $2}' |xargs git update-index --no-assume-unchanged   //取消所有被忽略

注意事项:使用skip-worktree,远程服务器改动pull 不会被覆盖,而assume-unchanged需要重新标记,assume-unchanged 用在(此选项专门用于检查某些文件是否已被修改的资源密集型用例。 例如,为了优化慢速文件系统上的资源使用,git 不会检查文件以查看有问题的文件是否已更改,它假定工作目录中的文件没有被修改。 每当索引中的文件条目发生更改时,此标志就会丢失。

参考文档:git - Git - “假设不变”和“跳过工作树”之间的区别 - 堆栈内存溢出

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值