1.改名命令
git mv file_from file_to
2.查看提交历史
git log
一个常用的选项是 -p
,用来显示每次提交的内容差异,也可以加上 -2
来仅显示最近两次提交
git log -p -2
该选项除了显示基本信息之外,还在附带了每次 commit 的变化。 当进行代码审查,或者快速浏览某个搭档提交的 commit 所带来的变化的时候,这个参数就非常有用了。
也可以为 git log
附带一系列的总结性选项。 比如说,如果你想看到每次提交的简略的统计信息,你可以使用 --stat
选项
git log --stat
另外一个常用的选项是 --pretty
。 这个选项可以指定使用不同于默认格式的方式展示提交历史。 这个选项有一些内建的子选项供你使用。 比如用 oneline
将每个提交放在一行显示,查看的提交数很大时非常有用。 另外还有 short
,full
和 fuller
可以用,展示的信息或多或少有些不同,请自己动手实践一下看看效果如何。
git log --pretty
但最有意思的是 format,可以定制要显示的记录格式。 这样的输出对后期提取分析格外有用 — 因为你知道输出的格式不会随着Git的更新而发生改变:
git log --pretty=format:"%h -%an,%ar : %s"
format常用选项
|
选项说明 |
%H | 提交对象(commit)的完整哈希字串 |
%h | 提交对象的简短哈希字串 |
%T | 树对象(tree)的完整哈希字串 |
%t | 树对象的简短哈希字串 |
%P | 父对象(parent)的完整哈希字串 |
%p | 父对象的简短哈希字串 |
%an | 作者(author)的名字 |
%ae | 作者的电子邮件地址 |
%ad | 作者修订日期(可以用 --date= 选项定制格式) |
%ar | 作者修订日期,按多久以前的方式显示 |
%cn | 提交者(committer)的名字 |
%ce | 提交者的电子邮件地址 |
%cd | 提交日期 |
%cr | 提交日期,按多久以前的方式显示 |
%s | 提交说明 |
3.版本回退命令
同上面的git log一起使用,然后会退到某个版本
git reset --hard commitID
4.撤消修改的命令
1) 当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,使用下面命令
git checkout -- fileName
eg: git checkout -- readme.txt
备注:这里的 -- 是不能少的
2)当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file
,就回到了 1),第二步按 1)操作。
git reset HEAD fileName
eg:git reset HEAD readme.txt
5.分支各项
1)新建分支
git branch branchName
2)切换到分支
git checkout branchName
3)这两条命令也可以合并起来写,创建+切换分支
git checkout -b branchName
4)合并分支,把名为branchName合并到master,记住要切换到master主分支上再合并
git merge branchName
通常,合并分支时,如果可能,Git会用Fast forward
模式,但这种模式下,删除分支后,会丢掉分支信息
如果要强制禁用Fast forward
模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息
git merge --no-ff -m "xxxx" branchName
5)删除分支
git branch -d branchName
如果要丢弃一个没有被合并过的分支,也可以通过这条命令强行删除
6)查看分支
git branch
7)查看分支合并图
git log --graph
更详细(git log --graph --pretty=oneline --abbrev-commit)
8)推送分支
推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上:
git push origin master
如果要推送其他分支,比如branch2
,就改成:
git push origin branch2
6.删除文件
一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm
命令删了:
rm test.txt
这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status
命令会立刻告诉你哪些文件被删除了:
现在你要从版本库中删除该文件,就用命令git rm删掉,然后 git commit:
git rm hello.ph git commit -m "delete hello.ph file"
这样,文件就从版本库中被删除了。