git commit--amend

最近在使用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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值