最近在使用git,感觉git和svn有很大的不同,一直想写一篇文章来总结下

git和svn最大的区别就是git是一个非全量的分支形式,而svn是一个全量的形式,svn想要拉分支非常的费力。

使用git的常用步骤:

1.从代码库clone下代码

clone是以,整个仓库为单位,也就是把整个仓库的代码,都搞下来了,也就是包含了所有的分支,你自己用哪个分支,你再切换到哪个分支就行了。

2.本地进行修改文件,代码

git add ***

git commit

git push

一般我们在push之前都会将我们修改的代码进行review下,我们要知道我们推动给gerrit的是哪些文件,

用git status 指令就能够清楚我们修改了哪些文件

通过git status命令可以查看当前工作区和暂存区文件的状态。

文件所处状态介绍:

(1).未跟踪状态(Untracked):

未跟踪状态的文件,是在工作区,但是未纳入Git管理的文件,不参与版本控制。

使用git add命令即可将未跟踪文件纳入管理

(2).位于暂存区待提交状态(Staged):

也就是已经进行了git add 操作了,已经位于缓冲区了

(3).Modified状态:

纳入跟踪的文件在工作区中被修改后就会处于Modified状态。

然后具体看文件的哪里发生了变化

用git diff 文件名字

对于git的几个名词这里简单的记录下:

远程仓库,本地仓库,本地暂存区,工作区。

git diff 查看的是本地暂存区和工作区的不同

git diff ----cached

查看的是 本地暂存区和本地仓库之间的区别。

而我们在git  add 之前也会先看下修改了哪些文件,比如我们 查看了git  status 发现有些是编译生成的中间文件

我们不想上传,那么就git add 想要上传的文件名字就可以了。

git commit 文件

这个时候如果我们commit完以后,想看下,我现在要push了,那么我都push了哪些改变呢,可以通过下面的方法来简单的查阅下:

git cherry -v  会有如下显示:

+ 95ce45a604c68fd1d9fe1a8fb53cfacb3b958649 test9

而如果我想看详细的,哪些要push的东西,可以 用git show 进行详细的查看

git show 95ce45a604c68fd1d9fe1a8fb53cfacb3b958649

会详细的显示下面的信息:

commit 95ce45a604c68fd1d9fe1a8fb53cfacb3b958649
Author: hczhang <hczhang@vw-mobvoi.com>
Date:   Tue Feb 9 14:29:17 2021 +0800

test9

diff --git a/test8 b/test8
index 50d2bca..d312603 100644
--- a/test8
+++ b/test8
@@ -1 +1,2 @@
 zhctest8
+zhctest999

然后我们再push

然后代码就会推到gerrit

3.当我们发现我们把修改的数据推送到服务器之后,发现我们推送的有问题,这个时候,可以在gerrit进行abandon

但是有一种更好的方法可以使用

用git  commit --amend

他主要有两种用法:

3.1 如果已经push到远端服务器,想修改已经提交过的commit信息

git  commit --amend

git push --no-thin origin  HEAD:refs/for/master

注意这里的意思是,只是提交commit的信息,也就是说你想修改下注释而已。

3.1 如果已经push到远端服务器,想修改代码信息,这里就包括修改代码的文件,以及新添加代码

git add 文件

git commit --amend

git push --no-thin origin HEAD:refs/for/master

4.就是版本的回退功能

所谓的回退就是你更改了许多内容,但是发现这些更改都是无效的,需要会退到前面的某一个版本,这个时候就要用到 git reset

git commit--amend相关推荐

  1. Git的撤销操作 git commit --amend

    在项目中我们也经常会使用到撤销操作 使用这一节我们就讲一讲Git的撤销操作 撤销操作主要有如下几种 git commit --amend 撤销上一次提交 并讲暂存区文件重新提交 git checkou ...

  2. 【Git】Git 版本管理 ( 补充提交版本 git commit --amend | 版本库提取文件 git checkout -- filename | 删除文件 git rm )

    文章目录 一.补充提交版本 git commit --amend 二.版本库提取文件 git checkout -- filename 三.删除文件 git rm 一.补充提交版本 git commi ...

  3. git commit --amend 改写提交

    1. commit --amend 为了节省时间,这个教程使用现有的历史记录作为本地数据库. 从这里下载 我们将修改最近一次的提交. 首先进入stepup-tutorial/tutorial1目录.本 ...

  4. git commit --amend修改git commit提交的message

    当git commit -m "message"提交之后,在push之前,发现git commit中的message有误,想把提交的message改过来,有什么办法? 首先输入gi ...

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

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

  6. git commit --amend 修改git提交记录用法详解

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

  7. Git(8)-- 撤消操作(git commit --amend、git reset 和 git checkout 命令详解)

    文章目录 1.撤消操作:`git commit --amend` 实例详解: 2.取消暂存的文件:`git reset` 3.撤消对文件的修改:`git checkout` 超详细 Git 图文版小白 ...

  8. git commit --amend两种用法

    一.如果已经push到远端服务器,想修改已经提交过的commit信息 1.保存:Ctrl + o; 回车 ;退出:Ctrl + x # git commit --amend 2.重新提交gerrit审 ...

  9. git commit -amend报错 ! [remote rejected] HEAD -> refs/for/master (duplicate request) error: failed to

    git commit --amend 提交代码 git push时报错: ` ! [remote rejected] HEAD -> refs/for/master (duplicate req ...

  10. git commit --amend 用法详解

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

最新文章

  1. hdu5296 01字典树
  2. redis如何解决秒杀超卖java_Spring Boot + redis解决商品秒杀库存超卖,看这篇文章就够了...
  3. 工程制图 ( 标准件与常用件)
  4. c# 获取word表格中的内容_Java 获取、删除Word文本框中的表格
  5. CLion导入用户自己的lib和头文件
  6. Saltstack 报错 python-crypto randomPool_DeprecationWarning:
  7. 【转载】他是个残疾人 mynote V1.01发布
  8. 网络I/O模型--04非阻塞模式(解除accept()、 read()方法阻塞)的基础上加入多线程技术...
  9. AttributeError: 'Request' object has no attribute 'is_xhr' 报错的解决办法
  10. 19. Django进阶:分页
  11. 针对利用tzselect修改时间及ln -sf 修改系统时间不好使的情况 linux 6.5
  12. 最新Activity与Fragment完全理解
  13. C语言---双人贪吃蛇
  14. android怎么实现记住密码功能,Android App“记住密码”功能的实现逻辑
  15. Xcode8兼容iOS7的解决方法
  16. 通过天眼查查询相关企业信息
  17. 阿里IOT 应用托管部署 (2020/12/02)
  18. 我们距离实现通用人工智能还有多远?
  19. 五子棋 java 课设,五子棋java课程设计
  20. oracle七参数坐标转换,MapGIS国土空间数据2000大地坐标系转换系统

热门文章

  1. App的开发成本是多少?
  2. vmware安装了vmware tools还是无法复制文件与文本(ubuntu16.04)
  3. chm打开空白(chm打开空白)
  4. linux下.dep文件,Linux 安装 golang 和 dep (附错两个误解决方法)
  5. mysql cmd 关闭防火墙_MySQL WorkBench:Failed to Connect to MySQL at XXX.XXX.XXX with user XXX
  6. 微信公众号,图文编辑超链接中,没有外部链接只能增加公众号链接是什么情况?
  7. 湘潭大学 计算机学院程诗婕,2019 CCF CCSP分赛区竞赛决出金银铜奖
  8. c语言源程序要求每行只能书写一条语句,C语言试题库(含答案)
  9. latex审阅时添加行号
  10. ACCESS使用技巧三则