关于git过滤提交
gitlab下载的公司代码,修改⼏个⽂件后,想提交,git status发现有⼏⼗个⽂件被修改了,很多都是build⽂件夹下的。
升职申请在android studio 的version Control控制台,Local changes⾥也能看到这些修改的⽂件。
重新在gitlab上拉代码下来,⽤户android studio打开,在没有做任何修改的情况下,git status都有很多⽂件被修改了。
在下载下来的代码下,发现了build⽂件夹被上⼀个⼈提交了。
如果只选择⾃⼰修改的⽂件提交,这样⼗分⿇烦。
在⽹上寻找⽅法,如何过滤提交。
发现⼀般有两种⽅法。
⽅法⼀:
沉思良久的意思
在tting->version control->ignored files下添加过滤条件。
设置⾥修改ignored files
⽅法⼆:
在项⽬根⽬录下,加⼀个.gitignore⽂件,⾥⾯写上过滤条件。
项⽬根⽬录创建.gitignore⽂件良心少一点是什么字
试了⽅法⼀,发现在Local changes⾥,那些build⽂件修改问题还是存在,没法解决问题。
于是搜了⼀下“android studio ignored files⽆效”,⽹上基本都说需要git rm -r --cached .清除缓存。
对于Android Studio 设置忽略build⽬录后仍然⽆效的问题
抱着试⼀试的态度,执⾏了这个命令。
结果控制台上⼀长串的rm⽂件,还以为⽂件都被删掉了。惊呆了。。。所有⽂件变为红⾊。
在⽹上看了⼀下,这个命令并不是物理删除⽂件,只是把所有⽂件的git追踪给取消了。现在⼤家都是新⽂件了。。。
git rm -r --cached解决已提交的⽂件在.gitignore中加⼊忽略后⽆效的问题
在⼄⽅那边提交的代码上可以看到,他们git上并没有提交build⽂件夹,⽽且他们的根⽬录上有⼀个.gitignore⽂件。
感觉⽤.gitignore⽂件来过滤⽐较好,⽤tting->version control->ignored files的⽅法,重新开⼀个android studio窗⼝,还得重新设置,太⿇烦了。失信不立
于是从⼄⽅的代码⾥,把这个⽂件copy过来,放在我们的这边根⽬录。
参考
烧的成语git rm -r --cached解决已提交的⽂件在.gitignore中加⼊忽略后⽆效的问题
⾥有⼀句话,.gitignore只会过滤没被git追踪的⽂件。
以及
Android Studio git添加.gitignore⽂件⽆效
所以现在可以执⾏下⾯两句命令了:
git add .
git commit -m ‘update .gitignore’
在提交信息上会发现,所有⽂件都被delete,但是add⾥⾯,重新加了所有⽂件。(猜测这个add⾥⾯,应该不包括过滤的⽂件了)
然后再git push。
春江潮水
去gitlab上看提交记录,最终结果是你修改的部分被提交了,⽽且,所有需要过滤的⽂件(⽐喻build⽂件夹)都被删除了。完美。
再次下载这个项⽬来验证,下载下来的⽂件已经不带build⽂件夹了,修改java⽂件,git status和Local changes⾥也只有你⾃⼰修改的⽂件了,整个世界都清净了啊。。。。
所以这个.gitignore⽂件最好在⼀开始就加进去,开发到⼀半加进去,就是这么⿇烦。。。
总结:
桂花的介绍
git rm -r --cached .榴莲有什么营养
git add .
git commit -m "xx"
git push
另外,在提交的时候,报出remote: GitLab: You are not allowed to push code to protected branches on this project.是因为权限不够。
参考资料Android Studio git添加.gitignore⽂件⽆效