工作了可以帮助你的git的一些高级操作

119 阅读3分钟
  1. 一个好的commit会说话

    作为一个小程序, 我还不能做到show me the code, 只能让commit来帮忙解释了.

    • git commit会进入一个编辑器的模式, 干净的改动配上详细的commit, 我写的真好,美滋滋
    • 如果commit比较简单,比如简单的tweak, fixes啊, 比如git commit -m "Tweak: something"
  2. 保持代码最新, 及时拉取最新的远程代码 我们要保持第一梯队,绝不落后!!!

    远程工作的我们,虽然有公司群,但是难免会看不到消息, 难不成大家都在群里大喊一声我要提交了😂

    • git pull 是一般简单的用法, 在提交之前先拉取一下
    • git pull --rebase 如果远程分支有其他人的提交, 那么需要先拉一下最新的来rebase下, 因为别人比你的修改要早嘛
  3. 回到之前的历史编辑状态

    代码改的不好, 但是commit了, 那要怎么回去呢? 总不能一点点改回去吧, 下面的可以搞定哦,想回哪个版本回哪个

    • git reset -i HEAD~1 如果当前git的操作不满意,需要回退到前面一个操作,可以用这个命令. 再前面一个可以把HEAD~1改成HEAD~2或者HEAD~3,以此类推
    • git reset --hard f08f333 如果要回到具体的commit,可以用 --hard来指定
  4. 修改分支的名字 最难取名字(头秃), 分支名字取的不合适, 要删掉重来吗? 不, 一行命令搞定

    • 如果分支名取的不好, 要如何修改呢 git rebase --onto newBase oldBase feature/branch
  5. 撤销文件的修改, 如何把不需要修改的文件还原呢

    • 老大在code review, 诶, 怎么多了这个文件 啊, 这个是因为代码编辑器帮我自动format,我不小心提交了, 恐慌😨, 要怎么补救呢? 别怕, 我教你办法.

      • 首先去master或者别的未修改到这个文件的分支,拿到最新的commit号

      • git checkout 8a7b201 index.html 再把这个文件checkout到这个commit号,是不是还原了呀

      Another use case for "checkout" is when you want to restore an old revision of a file: If you specify "HEAD" as the revision, you will restore the last committed version of the file, effectively undoing any local changes that you current have in that file:

  6. 撤销merge一个PR 老大, 我把代码合到demo了 老大说不, 这个暂时不要放上去 可是总不能干掉吧, force push更是不敢. 别怕, 下面的可以一下子搞定

    • git revert -m 1 b76a5f1f其中的header是merge的commit号
  7. 删除所有除了master之外的分支 这段时间终于忙完了, 诶, 我怎么有这么多分支了

    到了删分支的神圣时刻了: 拜拜啦, 你们都是我的功臣们

    ps: 注意, 要确认都是merge了的哟,不小心删掉了开发中的,那就嗝屁了

    • git branch | grep -v "master" | xargs git branch -D
  8. 合并commit

    这个大法好, 特别适合丢三落四的我, 发现总会少点什么, 还好我心细检查出来了, 但是之前已经写过一个了,难道再写一个commit, no, 看我把她们变成一个

    • git rebase -i HEAD~2 同样的, 这个也可以适用于2和3哦, 以此类推
  9. 大分支和小分支

    写大项目的时候, 如果一直在一个分支上开发, 老大看的时候: 晕,怎么有几百个, 你要累死我啊 内心慌得一批, 老大如何解决呢 当然是大分支和小分支了 大分支负责merge, 小分支负责加功能

    一个个小的,最后变成大的么

    • git checkout -b xxx 就可以切出去了

持续更新ing~

团队合作,一般都是在同一个分支上进行开发, 或者开发完之后,需要code review, 那么一份好的git历史, 就像一份文档一样,很清楚的交代了自己的行为, 也会得到别人的认可和亲切感. 因为看起来不那么累了,哈哈😄