zoukankan      html  css  js  c++  java
  • Git管理修正(取消跟踪、合并commit)

    本文总结了最近使用Git时候遇到的两个问题:
    1. 当将不必要跟踪的文件加入到仓库后如何处理?
    2. 提交了多个功能相同的commit后如何处理?

    总结经验

    1. 在创建仓库的一开始,就要设置号.gitignore文件,用于过滤掉不需要跟踪的文件和文件夹
    2. 谨慎提交commit,确保每个commit中所有的改动都是跟同一个任务相关的。

    我是怎么解决上述两个问题的

    1. 移除对文件/文件夹的跟踪,但不删除

    • 使用命令git rm --cached ignore_target_file 删除对某个文件的跟踪
    • 新建.gitignore文件,使用下列规则添加要忽略的文件或者文件
      • 所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
      • 可以使用标准的 glob 模式匹配。
      • 匹配模式最后跟反斜杠(/)说明要忽略的是目录
    • 举例,我的.gitignore文件内容如下
    # 忽略.gitignore文件
    .gitignore
    # 忽略.idea/文件夹
    .idea/
    # 忽略target/文件夹
    target/

    执行移除,新建.gitignore文件之后,再次git status就可以看到,这些讨厌的多余文件已经不被跟踪了。什么样的文件需要被忽略?编译生成的文件夹,如target目录;机器自动生成的,我们不会手动修改的隐藏文件,如.idea目录;中间文件,例如java项目中的.class文件。

    2. 合并多个相似的commit

    • git rebase -i HEAD~4
    • 将除了第一行(最老的那个commit)之外的行首的pick全部换成squash
    • :wq保存并推出
    • 修改最新的commit message即可

    参考资料

    1. Git基础–记录每次更新到仓库
    2. Git使用规范流程
    3. Git常用配置
  • 相关阅读:
    php 延迟静态绑定: static关键字
    python分片
    用逗号分隔数字,神奇
    ubuntu 屏幕截图
    js 获取随机数
    netty : NioEventLoopGroup 源码分析
    LinkedList 源码分析
    面向对象
    JS
    网页
  • 原文地址:https://www.cnblogs.com/javaadu/p/11742623.html
Copyright © 2011-2022 走看看