前言

git的一些常见命令操作整理

1、下载

depth用于指定克隆深度,为1即表示只克隆最近一次commit,可以减少下载的容量

1
git cone --depth=1 {http://xxx/url}

2、撤销commit

默认撤销,不撤销本地代码,撤销commit,并且撤销git add

1
git reset --mixed HEAD^

不删除工作空间改动代码,撤销commit,不撤销git add

1
git reset --soft HEAD^

删除工作空间改动代码,撤销commit,撤销git add

1
git reset --hard HEAD^

3、修改commit注释

进入 vim 模式

1
git commit --amend

4、撤销modify

1
git checkout {filePath/fileName}

5、撤销push

1
2
3
4
# 查看log清单拿到需要回退的commitId
git log 
git reset --soft {bc07480025bca168e2136064d795f2bb56eab999}
git push origin {master} --force

6、新增文件

1
2
3
4
# 全部新增
git add .
# 单个文件新增
git add {filePath/fileName}

7、删除已经add的文件

1
git rm {filePath/fileName}

8、修改历史commit的log

 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
# 1、修改倒数第1次的commit

git rebase -i HEAD~{1}

# 2、修改pick为edit,vim界面操作

    # 2.1、回车后进入一个页面,

    # 2.2、按i进入编辑模式,

    # 2.3、将要修改的那一条的pick修改成edit,

    # 2.4、按esc退出编辑模式,输入:wq保存并退出
   
# 3、修改commit注释内容

$ git commit --amend

# 按i进入编辑模式,修改内容,退出编辑模式,输入:wq保存并退出

# 4、合并
$ git rebase --continue

# 5、强制push

$ git push --force origin {master}

rebase工具的参数含义:

参数 含义
pick 保留该commit(缩写:p)
reword 保留该commit,但我需要修改该commit的注释(缩写:r)
edit 保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)
squash 将该commit和前一个commit合并(缩写:s)
fixup 将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)
exec 执行shell命令(缩写:x)
drop 我要丢弃该commit(缩写:d)

9、状态

1
git status

10、差异

1
git diff {commitId1} {commitId2}