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

       查看帮助,还有许多参数有其他效果,一般来说了解上述三种即可满足我们工作中的日常开发了

(转自:https://www.cnblogs.com/qianqiannian/p/6005628.html)

Git commit 常见用法相关推荐

  1. Git push 常见用法

    Git push 常见用法 - 浅浅念 - 博客园Git push 在使用git commit命令将修改从暂存区提交到本地版本库后,只剩下最后一步将本地版本库的分支推送到远程服务器上对应的分支了,如果 ...

  2. git commit --amend用法(摘抄)

    适用场景: 比方说,你的代码已经提交到git库,leader审核的时候发现有个Java文件代码有点问题,于是让你修改,通常有2种方法: 方法1:leader 将你提交的所有代码 abandon掉,然后 ...

  3. git commit --amend 用法详解

    有时你提交过代码之后,发现一个地方改错了,你下次提交时不想保留上一次的记录:或者你上一次的commit message的描述有误,这时候你可以使用接下来的这个命令:git commit --amend ...

  4. Git add 常见用法

     Git add   git add [参数]  [--] <路径> //作用就是将我们需要提交的代码从工作区添加到暂存区,就是告诉git系统,我们要提交哪些文件,之后就可以使用git c ...

  5. git diff 常见用法

    (本文转自https://www.cnblogs.com/qianqiannian/p/6010219.html,感谢原作者总结) git diff 用于比较两次修改的差异 1.1 比较工作区与暂存区 ...

  6. git pull常见用法

    git pull git pull的作用是从一个仓库或者本地的分支拉取并且整合代码.git pull的一般形式为 git pull <远程主机名> <远程分支名>:<本地 ...

  7. Git branch Git checkout常见用法

    git branch 和 git checkout经常在一起使用,所以在此将它们合在一起 1.Git branch 一般用于分支的操作,比如创建分支,查看分支等等, 1.1 git branch 不带 ...

  8. Git push的常见用法

    Git push 在使用git commit命令将修改从暂存区提交到本地版本库后,只剩下最后一步将本地版本库的分支推送到远程服务器上对应的分支了. git push的一般形式为 git push &l ...

  9. git commit -amend_最常见的Git错误都有哪些,如何解决它们?

    脚本之家 你与百万开发者在一起 如果您曾经与许多开发者一起开发一个大项目,那么使用 Git 作为版本控制是一个最好的选择.不过 Git 很复杂,使用过程中经常会犯各种错误.在本文中,我将讨论程序员在使 ...

最新文章

  1. JAVA如何实现发送短信
  2. 【jsp】写jsp文件的准备
  3. static变量 static函数
  4. Xilinx:让FFmpeg在FPGA上玩的爽
  5. HttpClient 发送 HTTP、HTTPS 请求的简单封装
  6. 微软提出VLMo:用“模态混合专家”进行统一的视觉语言预训练!即将开源!
  7. android url拼接参数,【Tech-Android-Other】高效拼接一个GET请求URL
  8. VIM - 01. 标准模式 - 下简单操作
  9. Telnet命令在Linux / Unix中的用法
  10. Android心电数据分析,基于Android的心电信号分析系统研究
  11. python输出图片字体加粗_python中xticks字体加粗-女性时尚流行美容健康娱乐mv-ida网...
  12. 定时开关机软件推荐及相关特点介绍
  13. Linux 服务器乱码问题解决
  14. python transforms_2.2 图像预处理——transforms(笔记)
  15. 蓝牙无法连接手机解决大全(转)
  16. 2022 年最佳 15 款监控工具!你不可错过
  17. mc服务器不显示皮肤,游戏中不显示皮肤的可能原因
  18. Ubuntu 14.04安装Nvidia显卡驱动以及查看显卡驱动
  19. PHPCMS V9学习笔记(配置): 后台界面模板在线编辑
  20. Android开发:隐藏和显示底部导航栏

热门文章

  1. python实现十大经典算法
  2. 通过SqlCmd执行超大SQL文件
  3. robo 3T基本使用
  4. java正则获取sql表名_如何提取SQL语句中的表名
  5. 导入并显示CIFAR数据集
  6. HTTP CODE 状态码500|502|504分析
  7. vim 如何根据文本中的路径,跳转到指定文件 gf
  8. 找一个机器学习的工作,学历重要吗?
  9. java解析tfrecord_TensorFlow高效读取数据的方法——TFRecord的学习
  10. C# Net6开发Linux守护进程(后台服务程序,类似Windows服务)案例