Git 入门

Git 是一个版本控制工具,正因为它仅仅是一个工具,所以我们不必耗费很大的精力去学习那些永远不会用到的命令,但是常用的命令还是得必须会使用。当然,常见的版本控制工具还有 SVN、TFS

什么是版本控制工具

版本控制工具--假设你写了一篇论文,后来的某一时间点,你修改了论文内容,过了一天后,发现更改之前的论文是正确的。当你没有版本控制工具时候,/(ㄒoㄒ)/~~。情况好一点,修改之前,备份了。但是,当这种操作在足够多的情况下,你的备份也就足够多,很容易乱掉。版本控制工具就是为了解决这种问题。

安装 Git

使用 brew 安装 Git


# 电脑未安装 `Homebrew`
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

# 电脑已安装 `Homebrew`
brew install git
1
2
3
4
5
6

新建一个 Git 仓库

新建一个名为 Git-Demo 的文件夹,执行以下命令。运行完成后,Git 仓库就建好了。


git init
# Initialized empty Git repository in /Users/grant/Documents/Git-Demo/.git/

1
2
3
4

新建一个文件

在 Git-Demo 内新建一个名为 README.md文件后,运行 git status,你将看到下图所示。。

img

这时,运行 git add README.md 命令,该文件就被提交到缓存区了。

img

运行 git commit -m 'add readme.md'命令,该文件就被提交到仓库了。

img

当你想查询提交历史的时候,输入 git log 就可以查看。如果想退出查询界面,按下 q 就可以退出了。

img

关联远程仓库

关联到远程仓库,使用如下命令。


git remote add origin git@XXX/Git-Demo.git

1
2
3

添加完成之后,是时候提交了。使用 git push -u origin master 命令。如图,就代表代码已经提交到远程仓库了。

img

可以使用 git remote -v 来查看关联的仓库。

这个时候,我们去 gitlab 上看下提交的结果。

img

生成 SSH Key

是不是发现自己无法提交?哈哈,那是因为提交到远程仓库,需要你拥有远程仓库的权限。这时,ssh key 就派上用场了。打开控制台执行以下命令来生成它。


ssh-keygen -t rsa -C "XX@XX.com" # 邮箱账号

1
2
3

~/.ssh/id_rsa 是私钥,~/.ssh/id_rsa.pub 是公钥

接着打开公钥:


cat ~/.ssh/id_rsa.pub # 输出公钥内容

1
2
3

复制输出内容,打开 gitlab,点击 Settings=>SSH Keys,把复制好的内容粘贴到 key 里面,然后为这个 key 起一个名字,点击 Add Key 就大功告成啦。

克隆仓库

当你已有一个远程仓库,你需要执行 git clone git@XXX/Git-Demo.git来把代码克隆到本地。如图,该远程仓库就已经被克隆下来了。

img

当你对改仓库做任何修改,同时想把修改都同步到远程仓库的时候,都需要依次执行。


git add someFile

git commit -m 'update'

git push

1
2
3
4
5
6
7

备注


# 全局配置

git config --global user.name "xxx"

git config --global user.email "xxx@xxx.com"

# 当前项目配置

git config --local user.name "xxx"

git config --local user.email "xxx@xxx.com"

# 查看本地分支

git branch

# 查看本地分支,并查看每一分支最后一次提交信息

git branch -v

# 查看远程分支

git branch -r

# 查看所有本地分支和远程分支

git branch -a

# 新增一个分支,但依然停留在当前分支

git checkout develop

# 新增一个分支,并切换到该分支

git branch develop
git checkout develop

# 切换分支

git checkout master

# 合并分支

git merge hotfix

# 删除本地分支
git branch -d testing

# 删除远程分支
git push origin :serverfix

# 恢复暂存区的指定文件到工作区

git checkout [file]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
最后更新: 8/10/2019, 7:38:12 PM