Git学习日记(一)
《Git 日志美化》
1、设置git自定义命令假名为lg
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --"
2、自定义命令调用
git lg
结果如下
* 3b5bb31 - (HEAD -> dev, master) 新的修改,测试rebase功能 (2 days ago) <author>
* 3a2b1f4 - Merge branch 'dev' (2 weeks ago) <author>
|\
| * 48b5fd8 - commit from dev (2 weeks ago) <author>
* | 8b82d5c - commit from master (2 weeks ago) <author>
* | b082301 - Merge branch 'dev' (2 weeks ago) <author>
|\ \
| |/
| * f0bc772 - dev 第一次修改 (2 weeks ago) <author>
* | b63e306 - master 第一次修改 (2 weeks ago) <author>
|/
* e9cb065 - init commit (2 weeks ago) <author>
《Git重置到指定版本》
1、重置命令格式
git reset [option] B 注:option指定重置类型,有soft、mixed 和 hard三种模式可供选择。
三种选项区别:
(1) soft 不改动工作区和索引 :当使用 git reset --soft B 时,master 和 HEAD 指向 B,但是依然保留了 C 添加跟踪的文件,此时会将这些文件放入暂存区中,显示为已缓存。同时工作区中修改的文件,显示为未缓存。
(2) mixed 保持工作区不变,重置索引 :当使用 git reset --mixed B 时,master 和 HEAD 指向 B,这时候 C 添加跟踪的文件仍然会在,但是会显示为未缓存(不是版本控制),而当前工作目录中的修改内容,仍然会在,显示未缓存的状态
(3) hard 重置索引和工作区(丢弃所有本地变更) :当使用 git reset --hard B 时,C 添加跟踪的文件,以及当前工作目录中的修改内容,都会丢失。
《Git修改已经提交的注释》
1、(可选步骤)修改git默认编辑器为vim
git config –global core.editor vim
2、修改上次提交的注释
git commit --amend
注:编辑完,保存退出即可。(警告:修改注释也会同时变更最新提交的版本hash码!)
3、(扩展情况)如果已经更新到远端,需要强制重新推送最新的提交
git push origin +master:master