Android Git使用:一次移除项目所有缓存文件的经历

情景:最近加入了一个新Team,牛人很多,新人也不少(外包队+本部,相信多数小伙伴都懂),Android 这边呢提交代码没有代码审查,全(良)靠(心)自(操)觉(作)。有的小伙伴对熟练度不够,导致android studio 构建的缓存文件总是被合并到主干 Dev上。在其他人合并的时候,就会卧槽*N ,我也不例外。
当然这只是忽略操作熟练度的使用问题,多加注意就行。
有问题就需要解决,这项目我是我一把屎一把尿重构的,我当然不忍心看着他一点一点变成一堆稀泥,这个清理Dev主干的任务就落到了我的手上。而此时我发现,我在针对Android studio 插件操作清除文件、Git 缓存清理、文件状态同步的理解上熟练度也只有青铜,大写惭愧,我几乎从来不用命令行提交代码(提交点点鼠标就能做,为什么要敲命令,为了炫酷吗? 白眼~那你现在不是尴尬了嘛)。这必须得认认真真取取经啦,插件平时方便,关键时刻还是要回到命令本身。

正文

  • 1.清理 本地分支 dev-me

    • 取消所有忽略

    • 根目录运行命令 git rm -r --cached 缓存文件/文件夹

      • 编辑器 库文件加载配置 .idea
      • gradle 插件 缓存 .gradle
      • offline 模式 gradle 插件 路径配置 gradle
      • module 配置自动加载的缓存 .iml 命令:git rm -r --cached **/**.iml
      • 根目录build 文件夹
    • 进入文件夹删除 被清除git记录的文件

    • commit

    • push → remote dev-me

    1. 进入Web GitLab 查看是否清楚干净,如果还存在上述任何一个文件,单独清理再push 即可。单独清理命令git rm -r --cached **/TBUI-Library.iml,变为红色
      (如果发现因为跟远端路径不匹配而无法提交,则直接到gitlab 上删除该文件,本地pull一次)
    1. 还原忽略 commit push
  • 4.以上完成后,重新添加忽略文件,重新设置本地gradle 插件 完成构建

  • 5.根目录运行 git status 提示:Your branch is up-to-date with *remote -dev-me* nothing to commit,working tree clean 本次remote 和local 缓存文件清理干净了。

完整忽略 加在根目录下的.gitignore文件中即可

# 所有的iml 文件
*.iml
# 整个 .idea 文件夹
.idea
# 所有的build 文件夹
build
# 所有的gradle 目录
gradle
# 整个 .gradle 文件夹
.gradle
# 文档
*.md


gitignore 忽略规则
# 忽略*.o和*.a文件
 *.[oa]

# 忽略*.b和*.B文件,my.b除外
*.[bB]
!my.b

# 忽略dbg文件和dbg目录
dbg

# 只忽略dbg目录,不忽略dbg文件
dbg/

# 只忽略dbg文件,不忽略dbg目录
dbg
!dbg/

# 只忽略当前目录下的dbg文件和目录,子目录的dbg不在忽略范围内
/dbg

# 需要忽略a文件夹下所有文件及目录,但是排除某个文件夹或文件
a/*
!xxchild/

额外小坑

  • ① 在使用IDE 插件执行合并后,提交时发现在个别忽略文件夹下新增的文件会被add 到本地git 缓存,这时候需要使用上面的命令单独移除这个文件后再提交
  • ② 如果你发现在GitLab 中发起 merge Request 时出现了下面的提醒:
    ·This merge request contains merge conflicts that must be resolved.You can try it manually on the command line·
    就是说你已经同remote Dev 差了好几个节点,并且每个节点中你都有没合并的提交。
    而你去执行 compare 发现并无需要解决的冲突。那他其实是要你需要逐个回退,重新合并提交不可以跳跃,如果还有parent commit。这就非常恐怖了。咱也不可能把几十次的commit都回退去merge。
    点开 command line 会给你两段 合并的命令
    就照她说的做,命令也好插件也好。完成合并即可。
    之后重新从Dev 拉取个分支作为你的新分支吧。这时候再发merge request 就可以成功了。

遇到Git 异常

$ git commit -a
fatal: Unable to create 'E:/****/.git/index.lock': File exists.

Another git process seems to be running in this repository, e.g.
an editor opened by 'git commit'. Please make sure all processes
are terminated then try again. If it still fails, a git process
may have crashed in this repository earlier:
remove the file manually to continue.
原因:在你进行某些比较费时的git操作时自动生成,操作结束后自动删除,相当于一个锁定文件,目的在于防止对一个目录同时进行多个操作。有时强制关闭进行中的git操作,这个文件没有被自动删除,之后你就无法进行其他操作,必须手动删除
解决:手动删除这个文件,或者执行git 命令:rm -f ./.git/index.lock

遇到不解 希望评论中有人可以 点出

① remote dev 和本地都看不到的文件,在本地 合并远端时 有冲突文件 标记为Delete
② Android studio 在使用插件合并时,偶尔会自动执行 add 添加忽略文件夹下的文件 文件到git缓存中,在commit 时会发现这个文件。


END

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容

  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,657评论 4 54
  • 声明:这篇文章来源于廖雪峰老师的官方网站,我仅仅是作为学习之用 Git简介 Git是什么? Git是目前世界上最先...
    横渡阅读 3,948评论 3 27
  • 或许有一天来到一个城市,漂泊良久的你终于可以在霓虹灯后面的烟井阡陌,不用赤裸裸的面对寂寞的穷形尽相。在这个城市种下...
    诗歌与王位阅读 389评论 5 2
  • 记得上小学的时候,每天早晨都要去居委会领牛奶,爸爸妈妈和我每人一瓶。最喜欢用奶锅热牛奶的过程,纯白色的液体倒入锅中...
    宇曦阅读 880评论 0 0
  • 花季雨季的少男少女,往往会因为一次偶然的目光相遇,从而产生一种心灵的默契。 这是一种很玄妙的东西,朦朦胧胧地,根本...
    下一站_ecc9阅读 253评论 0 1