生如夏花之绚烂,死若秋叶之静美 随笔- 59 文章- 0 评论- 7 博客园 首页 新随笔 联系 管理 订阅
Git commit 常见用法
Git commit
git commit 主要是将暂存区里的改动给提交到本地的版本库。每次使用git commit 命令我们都会在本地版本库生成一个40位的哈希值,这个哈希值也叫commit-id,
commit-id在版本回退的时候是非常有用的,它相当于一个快照,可以在未来的任何时候通过与git reset的组合命令回到这里.
1.1 git commit -m “message”
这种是比较常见的用法,-m 参数表示可以直接输入后面的“message”,如果不加 -m参数,那么是不能直接输入message的,而是会调用一个编辑器一般是vim来让你输入这个message,
message即是我们用来简要说明这次提交的语句。还有另外一种方法,当我们想要提交的message很长或者我们想描述的更清楚更简洁明了一点,我们可以使用这样的格式,如下:
git commit -m ‘
message1
message2
message3
’
1.2 git commit -a -m “massage”
其他功能如-m参数,加的-a参数可以将所有已跟踪文件中的执行修改或删除操作的文件都提交到本地仓库,即使它们没有经过git add添加到暂存区,注意,
新加的文件(即没有被git系统管理的文件)是不能被提交到本地仓库的。建议一般不要使用-a参数,正常的提交还是使用git add先将要改动的文件添加到暂存区,再用git commit 提交到本地版本库。
1.3 git commit --amend
如果我们不小心提交了一版我们不满意的代码,并且给它推送到服务器了,在代码没被merge之前我们希望再修改一版满意的,而如果我们不想在服务器上abondon,那么我们怎么做呢?
git commit --amend //也叫追加提交,它可以在不增加一个新的commit-id的情况下将新修改的代码追加到前一次的commit-id中,
(1) 假如现在版本库里最近的一版正是我们想要追加进去的那版,此时是最简单的,直接修改工作区代码,然后git add,之后就可以直接进行git push到服务器,中间不需要进行其他的操作如git pull等
(2) 如果现在版本库里最近的一版不是我们想要追加进去的那版,那么此时我们需要将版本库里的版本回退到我们想要追加的那一版,想要将版本回退到我们想要的哪一版有好几种方法
1) 第一种即是我们从服务器上选取我们需要的版本,直接进行挑拣,在服务器的提交管理页面上右上方一般会有一个Download按钮,点击会弹出一个下拉框,选择其中的cherry-pick,复制命令,
之后在我们版本仓库对应的目录下运行这个命令,执行完后,使用git log -1 命令,可以查看到现在版本库里最近的一版变成了我们刚才挑拣的这版,此时再在工作区直接修改代码,
改完之后进行git add,再执行本git commit --amend命令,之后git push.
2) 使用gitk或其他的图形界面化工具,在终端输入 gitk,回车,会弹出gitk的图形界面,在界面的左侧部分陈列着版本库中的一条条commit-id,此时选中我们需要的那一版,右键点击之后会弹出一个
选择菜单,如果是在master 分支上,那么其中会有一项是 Reset master branch to here,点击这项,会弹出一个名为confirm reset的确认box,选择reset type 中的hard项,再点击OK,
关闭gitk图形界面,回到终端,运行git log -1命令,发现现在版本库里最近的一次提交已经是我们希望的那一版了,此时再在工作区直接修改代码,改完之后进行git add,
再执行本git commit --amend命令,之后git push.
3) 如果我们知道我们需要的版本与现在最近的版本中间隔着 n 个提交,那么我们可以直接使用git reset --hard HEAD~n命令,关于git reset 命令有详解,此时这个命令执行完后,
运行git log -1 命令我们会发现现在版本库里最近的一版就是我们需要的那版,此时再在工作区直接修改代码,改完之后进行git add,再执行本git commit --amend命令,之后git push.
4) 如果我们不知道我们需要的版本与现在最近的版本中间隔着 n 个提交,那么我们可以使用git log来查看版本库中的commit-id,找到我们需要的commit-id后,在终端中执行git reset --hard commit-id,
时这个命令执行完后,运行git log -1 命令我们会发现现在版本库里最近的一版就是我们需要的那版,此时再在工作区直接修改代码,改完之后进行git add,再执行本git commit --amend命令,之后git push.
1.4 git commit --help
查看帮助,还有许多参数有其他效果,一般来说了解上述三种即可满足我们工作中的日常开发了
学习无他法,唯有持之以恒 posted on 2016-10-27 21:17 浅浅念 阅读(4054) 评论(0) 编辑 收藏 刷新评论刷新页面 返回顶部 注册用户登录后才能发表评论,请 登录 或 注册, 访问网站首页。 最新IT新闻:
· 睡一觉就一无所有了,手机验证码是怎么泄露的?
· 揭秘链圈造富神话:代写项目书年赚20万 90%ICO未落地
· 京沪白领图鉴:隐形土豪、无产中产阶级和猪猪女孩
· 让癌细胞“休眠”?Nature首秀:一类奇妙的抗癌新药
· 小米印度失速
» 更多新闻...
最新知识库文章:· 如何提高一个研发团队的“代码速度”?
· 成为一个有目标的学习者
· 历史转折中的“杭派工程师”
· 如何提高代码质量?
· 在腾讯的八年,我的职业思考
» 更多知识库文章...
|
||||||
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
|---|---|---|---|---|---|---|
| 29 | 30 | 31 | 1 | 2 | 3 | 4 |
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 | 1 |
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
园龄:1年9个月
粉丝:15
关注: 0 +加关注
搜索
常用链接
随笔分类
随笔档案
- 2018年6月 (2)
- 2018年4月 (2)
- 2018年2月 (4)
- 2017年7月 (2)
- 2017年6月 (5)
- 2017年5月 (4)
- 2017年3月 (22)
- 2016年11月 (8)
- 2016年10月 (10)
最新评论
- 1. Re:Vim 常用简单命令
- 学到了,写的太好了,666
- --好名被狗取
- 2. Re:MVC模式和MVP模式的区别
- 大兄弟你真是太实诚了
- --浅浅念
- 3. Re:类成员函数可以为回调函数吗
- 哥们你是认真的吗
- --浅浅念
- 4. Re:类成员函数可以为回调函数吗
- 对回调函数的调用:调用程序发出对回调函数的调用后,不等函数执行完毕,立即返回并继续执行。这句话没解释太清楚,回调函数分为两种,阻塞式和延迟式,如果能区分这两种就好了。附上一个链接:...
- --不燥不怕
- 5. Re:MVC模式和MVP模式的区别
- 举例形象生动!高
- --空景Sadnes╰つ
阅读排行榜
- 1. Git push 常见用法(82721)
- 2. Git diff 常见用法(25257)
- 3. Git branch && Git checkout常见用法(16143)
- 4. Git clone 常见用法(9486)
- 5. Git add 常见用法(6843)