博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[译]git commit
阅读量:4982 次
发布时间:2019-06-12

本文共 1690 字,大约阅读时间需要 5 分钟。

git commit

git commit命令提交stage区的快照到项目历史中去(HEAD). 被提交的快照被认为是一个项目的安全版本. Git不会修改他们, 除非你显示的要求了. 和git add一样git commit是Git最重要的命令之一.

 

尽管名字相同git commit和svn commit完全不一样. 快照被提交到本地仓储,  不会和其他git仓储有任何的交互影响.

 

用法

git commit

提交stage区的快照. 上面的命令运行后会自动打开一个文本编辑器让你写一些关于这次commit的描述. 填写后, 保存文件关闭文本编辑器才会真正的commit.

 

git commit -m "
"

这样就不会弹出一个文本编辑器了, 可以直接在commit命令中直接包含对这次commit的描述.

 

git commit -a

提交工作目录下面的所有修改过的文件. 注意了这些文件只包括已经被tracked过而且有修改的文件.

 

讨论

快照被提交到本地仓储. 这和SVN完全不同, 在SVN中working copy被提交到了中心仓储. 相反, Git不会强迫你和中心仓储交互, 知道你自己想这样做. 就如stage区是本地工作目录和项目历史(HEAD)之间的一个缓冲区, 每个开发者的本地仓储是他们的贡献和中心仓储的一个缓冲区.

 

SVN是直接commit修改到中心仓储. Git不同, git开发者有机会在他们本地的仓储中积累一些commit. 这样做比起SVN来说有许多好处:这样可以把相关的commits组织起来, 在push到中央仓储前清除本地的历史. 让开发者在一个完全独立的隔离的环境下工作, 推迟集成直到在一个恰当的时候.

 

快照, not differences

SVN跟踪的是文件的不同之处, Git版本控制模型是基于快照的. 例如, SVN commit由diff组成(与被添加到仓储中的原始文件相比). Git纪录每次commit的每个文件的整个内容.

这种方式使得Git操作起来比SVN要快, 因为一个特定版本的文件不需要通过组装diff来产生--可以马上从Git的内部数据库中获得每个文件的完整的版本.Git的快照模型广泛影响于git的方方面面.

 

例子

下面的例子假设你已经有了一个文件hello.py, 他即将被commit到项目历史中去. 首先你需要使用git add把他添加的stage区, 然后commit这个stage区的快照.

 

git add hello.pygit commit

运行后会打开一个文本编辑器要求你输入关于这次commit的一些描述, 同时还会列出哪些文件要被commit:

# Please enter the commit message for your changes. Lines starting# with '#' will be ignored, and an empty message aborts the commit.# On branch master# Changes to be committed:# (use "git reset HEAD 
..." to unstage)##modified: hello.py

Git不要求这个commit描述有特殊的格式, 但是一个好的经典的格式是在第一行用少于50个字符的文字概括这次commit, 然后空一行, 接下来详细的描述发生了什么修改. 例如:

hange the message displayed by hello.py- Update the sayHello() function to output the user's name- Change the sayGoodbye() function to a friendlier message

  

转载于:https://www.cnblogs.com/irocker/p/git-commit.html

你可能感兴趣的文章
剑指Offer的学习笔记(C#篇)-- 反转链表
查看>>
Android精品资源整理2018年3月21日 星期三
查看>>
查询当前库中包含某个字段并且包含自增的表
查看>>
SSH整合报错:No result defined for action and result input
查看>>
1963-带妹子去看电影
查看>>
数据结构和算法之栈排序
查看>>
HBASE的预分区设计
查看>>
大道至简第三章读后感
查看>>
java中JDK、JRE、JVM的关系
查看>>
mybatis面试常见题
查看>>
EXCEL转html
查看>>
对象和XML之间的序列化和反序列化
查看>>
cSELECT
查看>>
第六章 类文件结构(待续)
查看>>
头文件与函数定义分离
查看>>
ECUST 12级 Practise
查看>>
罗马数字转换成整数
查看>>
gearcache在qemu-kvm虚拟化平台下的实现
查看>>
.Net生成HTML的三种方法
查看>>
HTML&CSS基础学习笔记1.8-预格式文本
查看>>