之前的文章已经学习过 git 的基础用法,这篇文章再介绍几个进阶用法
首先我们回顾一下 Git 基础用法。
我们在 GitHub 的每次提交理论上都会在 主页的下面产生一条绿色小方块的记录,如果你确认你提交了,但是没有绿色方块显示,那肯定是你提交代码配置的邮箱跟你 GitHub 上的邮箱不一致,GitHub 上的邮箱可以到 Setting -> Emails里查看。
下面介绍几个有用的进阶知识。
上面提到的基本操作,有几个使用很频繁,每次都要输入完整的单词。
使用 `alias`` 可以给这些操作七个简单的别名,就能简化输入。
基本语法是:
git config --global alias.别名 git命令
比如给 commit 和 status 起别名:
git config --global alias.ci commit
git config --global alias.st status
下次再用这两个命令就可以写:
git ci
git st
除了简单命令还可以设置组合命令,给组合命令加引号即可:
git config --global alias.pullom 'pull origin master'
git config --global alias.pushom 'push origin master'
当然别名不是固定的,你可以根据习惯设定。
起别名后,你可以看到 .gitconfig
文件里有 alias
的配置,如果不需要某个别名,删掉即可。
此外,有一个厉害的 git log
命令,可以把常规的日志按结构化显示。
git log --graph --pretty=format:'%Cred%h%Creset - %C(yellow)%d%Creset %s %Cgreen(%cr)
%C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
你可以给它起名为 lg
,以后打印结构化日志直接输入 git lg
就行:
git config --global alias.lg "git log --graph --pretty=format:'%Cred%h%Creset - %C(yellow)%d%Creset %s %Cgreen(%cr)
%C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
还记得 git add
会把文件放入暂存区吧,在git add
之前使用 git diff
可以显示你对某一文件的改动。
红色的部分前面有个 - 代表我删除的,绿色的部分前面有个 + 代表我增加的,所以从这里你们很一目了然的知道我到底对这个文件做了哪些改动。
除此之外,git diff
还有其他用法:
git diff <$id1> <$id2> # 比较两次提交之间的差异
git diff .. # 在两个分支之间比较
git diff --staged # 比较暂存区和版本库差异
在我们使用 Git 的时候,有时候会遇到想要回滚到某次提交之前的场景。
首先用 git log
查看版本号(commit 后面那一长串就是版本号):
找到想要回退的版本号之后,在本地 Git 仓库执行如下命令,选一个即可:
git reset --hard 版本号 (抛弃当前工作区的修改)
git reset --soft 版本号 (回退到之前的版本,但保留当前工作区的修改,可以重新提交)
如果你的文件只在本地,执行上面的步骤就可以啦。
如果你的文件提交到 GitHub 上,还需要执行如下命令同步到远端:
git push origin 分支名
示本地的版本落后于远端的版本,因此我们还需要在上述命令中加上--force
参数:
git push origin 分支名 --force
返回:GitHub 教程目录