估计很多使用 git 的同学把握不住什么时候应该 commit, 什么时候又应该把未提交的 commits 都 push 上去, 今天我就把我的理解说一说。
  首先,有一条原则应该是要遵循的: 提交描述 = 提交的修改
  凡是违背这一原则的都构成欺诈:

  1. 提交描述 < 提交的修改

      这种情况是这次提交中 实际修改的内容比提交描述中介绍的要多, 难道你想添个后门?

  2. 提交描述 > 提交的修改

      这种情况是实际修改的内容比提交描述中介绍的要少, 那不是偷工减料吗,我们不要做豆腐渣工程。

  所以,提交的描述一定要精准。 git 的提交描述可以是多行的,描述的内容可以非常详细, 在不填写描述的情况下提交 git 弹出的这个对话框就介绍了这一点:


  commit 是一次目的性明确的改动, 但改动的地方不宜过多(否则看起来会晕o(╯□╰)o), 我们应该将一个功能分解为几个 commit, 一个 commit 负责一个部分的改动, 当这几个 commit 都完成了再 push。
  这样做是因为没有 push 上去的提交保存在本地, 万一有什么当时没想好的,还可以修改 (未 push 的 commit 是有办法修改的,后续文章会讲), 要是 push 上去了,最好就不要改了, 而是用新的 commit 来弥补 (git 允许冲掉以前 push 的变更:git push -f)。
  照以上的建议来做的话,可以保证每个 commit 的质量,以致提高每个功能的质量。

  最近学 SVN 版本管理,SVN 是直接 commit 到远程的, 也就是说它不允许像 git 这样收集几个 commit, 等觉得没问题了,再推送到远程,这样就不太好了。

commit 和 push 的临界点相关推荐

  1. 理解Git的设计思想,详解git文件夹,以及详解add、commit、push,fetch、pull、merge指令

    在项目目录执行git init,此目录将纳入git管理,git将会自动生成.git文件夹,用以记录git配置(.git/config)和版本信息(commit-id)和文件集合.下面是.git文件夹的 ...

  2. Git中pull,commit和push的概念

    简而言之: pull:将代码托管平台上的代码下载到本地代码仓库 push:将本地代码仓库的代码上传到代码托管平台 commit:将我们编辑或正在编辑的代码提交到我们的本地代码仓库 参考文章:Git中p ...

  3. Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突...

    Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突 这篇是接着上篇分布式版本库--Windows下G ...

  4. Git得基本使用方法add、commit、push、checkout以及Pull

    一.Git是什么? Git是目前世界上最先进的分布式版本控制系统. Working Directory:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remo ...

  5. Git commit/pull/push的操作步骤

    1.操作步骤需要严格执行如下顺序:commit->pull->push 2.commit:将代码提交到本地仓库. 3.pull:将远程仓库代码同步到本地仓库.如遇冲突,解决冲突,重复com ...

  6. 02_创建Git仓库,克隆仓库,git add,git commit,git push,git pull,同行冲突,不同行冲突的结局方案,git mergetool的使用

    1 创建Git资源库,残酷目录信息 创建git资源库的命令: git init –bare 仓库名称 (其中-bare表示的意思是空的库的意思) 进入E:\software\repository\gi ...

  7. git 只commit不push 会有影响吗_规范化团队 git 提交信息

    规范化团队 git 提交信息 同一个工程项目,为了方便管理,git 的 commit 信息最好按照一定的格式规范,以便在需要的时候方便使用.什么是方便的时候,比如出现了一个线上 bug,所以需要回滚操 ...

  8. IDEA使用(03)_git撤回(已经commit未push的)操作

    1.问题来源 日常工作中会遇到 commit 到本地仓库的代码,因为一些原因,需要撤销后再提交到本地,或者需要整合多次 commit,然后 push 到远程仓库. 2.IDEA解决方案 I.在idea ...

  9. docker提交容器成一个新的镜像commit和push,以及docker常用命令

    docker自己提交配置好的容器,然后生成一个新的镜像,以后启动就以配置好的镜像作为模板启动 代码如下: docker commit -a "author" -m "co ...

  10. 撤销commit且未push操作的git命令

    2019独角兽企业重金招聘Python工程师标准>>> 在git push的时候,有时候我们会想办法撤销git commit的内容  1.找到之前提交的git commit的id  ...

最新文章

  1. 网站优化中什么样的外链容易被删去?
  2. 解决screen Cannot open your terminal '/dev/pts/1'问题
  3. python 3389爆破机
  4. Linux TCP队列相关参数的总结
  5. If语句:你们到底想把我放到哪儿?
  6. Vue的列表渲染指令
  7. linux虚拟机克隆
  8. 不重新编译DLL,让FCKEditor支持附件上传
  9. php防止快速刷新代码(分享)_php防止网站被刷新的方法汇总
  10. 前端学习(1186):双向数据绑定
  11. 日记——2019-03-12
  12. 高性能Web动画和渲染原理系列(5)合成层的生成条件和陷阱
  13. 谷歌用AI诊断早期肺癌超越人类医生,登上Nature子刊
  14. 项目管理甘特图模板_甘特图简易制作流程
  15. Windows Server AppFabric与WCF
  16. 浙大PAT 1051
  17. mysql 访问被拒绝如何解决
  18. core dump 是什么意思?
  19. ch376inc.h
  20. Lenovo Y50 (1080P) 安装 黑苹果 hackintosh macOS High Sierra 10.13.5 (17F77) 不适合双系统

热门文章

  1. 内存卡数据被格式化如何恢复?
  2. java 中 isb啥意思_isb官网-新版下载
  3. spring中 allowBeanDefinitionOverriding(spring.main.allow-bean-definition-overriding)原因分析、解决办法
  4. Wireshark TS | 丢包?不要轻易下结论续
  5. 1024 程序员节|用代码,改变世界
  6. 参考文献标引方式_参考文献标注方法有哪些 为什么要标注参考文献
  7. 用10行代码实现鉴黄
  8. 【寒江雪】空间中的点线和面
  9. 2019/7/31随笔
  10. 如何建立自己的【渲染农场】终极指南(2)