Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GitHub 小白入门(五)Git 进阶 #8

Open
CatOneTwo opened this issue Jun 27, 2020 · 0 comments
Open

GitHub 小白入门(五)Git 进阶 #8

CatOneTwo opened this issue Jun 27, 2020 · 0 comments
Labels
入门 入门系列

Comments

@CatOneTwo
Copy link
Owner

之前的文章已经学习过 git 的基础用法,这篇文章再介绍几个进阶用法

1. Git 基础

首先我们回顾一下 Git 基础用法。

1.1 基本配置

  • git --version:返回版本号
  • git --help:帮助文档
  • git config --list:查看所有配置
  • git config --list --show-origin:查看所有配置以及它们所在的文件
  • git config --global user.name "用户名":全局配置用户名
  • git config --global user.email 邮箱地址:全局配置邮箱
  • git config user.name:查看用户名
  • git config user.email:查看邮箱

我们在 GitHub 的每次提交理论上都会在 主页的下面产生一条绿色小方块的记录,如果你确认你提交了,但是没有绿色方块显示,那肯定是你提交代码配置的邮箱跟你 GitHub 上的邮箱不一致,GitHub 上的邮箱可以到 Setting -> Emails里查看。

1.2 基本操作

  • git status :查看仓库状态
  • git init:创建一个空仓库,或者重新初始化一个已有仓库
  • git add:把文件添加到可提交列表(临时缓冲区)
  • git commit:提交改动(增删改)至仓库
  • git log:打印提交日志
  • git branch:查看、添加、删除分支
  • git checkout:切换分支、标签
  • git merge:合并分支
  • git tag:新建、查看标签
  • git clone:下载仓库

2. Git 进阶

下面介绍几个有用的进阶知识。

2.1 设置别名

上面提到的基本操作,有几个使用很频繁,每次都要输入完整的单词。

使用 `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'

Snipaste_2020-06-27_18-19-17

当然别名不是固定的,你可以根据习惯设定。

起别名后,你可以看到 .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"

2.2 显示改动

还记得 git add 会把文件放入暂存区吧,git add 之前使用 git diff 可以显示你对某一文件的改动。

红色的部分前面有个 - 代表我删除的,绿色的部分前面有个 + 代表我增加的,所以从这里你们很一目了然的知道我到底对这个文件做了哪些改动。

除此之外,git diff 还有其他用法:

git diff <$id1> <$id2> # 比较两次提交之间的差异
git diff <branch1>..<branch2> # 在两个分支之间比较
git diff --staged # 比较暂存区和版本库差异

2.3 版本回滚

在我们使用 Git 的时候,有时候会遇到想要回滚到某次提交之前的场景。

首先用 git log 查看版本号(commit 后面那一长串就是版本号):

image-20200627184507777

找到想要回退的版本号之后,在本地 Git 仓库执行如下命令,选一个即可:

git reset --hard 版本号 (抛弃当前工作区的修改)
git reset --soft 版本号 (回退到之前的版本,但保留当前工作区的修改,可以重新提交)

如果你的文件只在本地,执行上面的步骤就可以啦。

如果你的文件提交到 GitHub 上,还需要执行如下命令同步到远端:

git push origin 分支名

示本地的版本落后于远端的版本,因此我们还需要在上述命令中加上--force参数:

git push origin 分支名 --force

返回目录:GitHub 入门教程

@CatOneTwo CatOneTwo added the 入门 入门系列 label Jun 27, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
入门 入门系列
Projects
None yet
Development

No branches or pull requests

1 participant