30个Git命令汇总,完成绝大部分Git操作

200 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第19天,点击查看活动详情

1.查看工作区当前的状态

$ git status

删除了temp.html,但是存在暂存区,需要额外使用 git add temp.html

$ rm temp.html

2.删除temp.html,并且状态存在了暂存区

$ git rm temp.html

3.磁盘上仍然存在temp.html,但是通过git status会看到temp.html变成了一个untracked file

$ git rm --cached temp.html

4.重命名a.html为b.html

$ git mv a.html b.html

5.修改最后一次提交的commit记录信息,sourcetree中对应于“文件”中的“修改最后一次提交”的选项

$ git commit --amend -m '修订提交信息'

6.追加文件到最后一次的commit

gitaddtemp.htmlgit add temp.html git commit --amend --no-edit

7.添加.gitignore中忽略的文件

$ git add -f 文件名称

8.某个文件的某一行代码是谁写的

$ git blame index.html

9.当使用git checkout 命令时,Git会切换指定的分支,但如果和面接的是文件名或路径,Git不会切换分支,而是把文件从 .git 目录中复制一份到当前的工作目录

$ git checkout

10.用距离现在两个版本以上的文件覆盖当前工作目录中的文件,同时更新暂存区中的状态

$ git checkout HEAD~2

11.下面三个命令中的^代表的是”HEAD“,”master“,指定提交版本的”前一次“

git reset HEAD^ git reset master^ $ git reset <commit版本号>^

12.结合git reset 找回被强制reset的内容

$ git reflog

13.计算blob对象的SHA-1值

$ git hash-object --stdin

14.查看git对象的信息 blob tree commit tag

$ git cat-file

15.查看当前文件在Git中的样子

$ git ls-files -s

16.git的回收机制

$ git gc

17.查看git回收中的打包情况

$ git verify-pack -v ./git/objects/pack/pack-......idx

18.输出当前项目的分支

$ git branch

19.增加分支

$ git branch 分支名称

20.更改分支名称

$ git branch -m name newName

21.删除分支

$ git branch -d name

22.如果要删除的分支没有被完全合并,强制删除

$ git branch -D name

23.切换分支,如果没有分支的情况下,直接创建

$ git branch -b name

24.落后的Commit的分支,在merge合并之后,就能处在同一个Commit上了

$ git merge 分支名称

25.不要快转模式

$ git merge name --no-ff

26.变基,rebase可以用来合并,但是它会改变原有的历史commit的顺序,如果不熟悉的情况下慎用

$ git rebase

27.ORIG_HEAD会记录“危险操作”之前HEAD的位置,分支合并、reset都算是“危险操作”

$ git reset ORIG_HEAD --hard

28.在rebase过程中如果出现冲突的情况下,解决冲突后使用如下命令继续执行rebase

$ git rebase --continue

29.修改历史信息互动模式,互动模式,就是在按照说明输入命令的情况下,会弹出vim编辑器,输入对应内容后保存退出

$ git rebase -i bc5a036

30.解决冲突文件,无法像文本一样合并解决冲突,使用如下方式来决定选择哪一个版本

gitcheckoutours<文件>git checkout --ours <文件> git checkout --theirs <文件>