Skip to content
New issue

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

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

Already on GitHub? # 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
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
入门 入门系列
Projects
None yet
Development

No branches or pull requests

1 participant