发现廖老师的资料有点浅,所以阅读了极客时间的git专栏整理的笔记,该笔记主要是整理开发场景中常用的git操作
安装Git & 设置
请参考这个官方文档点我
最小配置user.name
和user.email
1
2 git config --global user.name 'your name'
git config --global user.email 'your email@domain.com'
若配置基本信息时未添加--global
参数,则等同于local,此时的配置只针对当前仓库有效1
2
3
4
5
6
7
8
9
10 config的三个作用域
仅对当前仓库有效
git config --local
对当前用户所有仓库生效
git config --global
所有登陆系统用户都生效
git config --system
若想查看config配置,使用--list
参数1
2
3 git config --list --local
git config --list --global
git config --list --system
Git使用入门
常用命令
1 | 向仓库中添加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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 如何删除不使用的分支
git branch -d 9c6861f
如何修改最新commit的meaasge信息 && 只能修改本地分支
git commit --amend
如何修改老旧commit的meaasge信息 && 只能修改本地分支
git rebase -i 429241f # hash号是目标提交的父提交号
r 429241f -> wq!
修改信息 -> wq!
如何将多个连续的commit合并为一个commit
git rebase -i 429241f # hash号是目标提交的父提交号
pick 9c6861f info
s 4234213 info
s 8d32e83 info
s 2a4489d info -> wq!
添加新的合并信息
Create a complete page -> wq!
如何将多个不连续的commit合并为一个commit
git rebase -i 429241f # hash号是目标提交的父提交号,若目标提交已经是第一次提交没有父提交号,可以在此处填写目标提交号,再手动编辑交互式文件
step 1 手动的加上目标提交Hash值
pick 4234213 #这个目标号是是手动添加的
step 2 将需要合并的提交号都排列在一起,并设置为s
pick 4234213
s 4234213 info
s 2a4489d info -> wq!
step 3
可能要添加这句话 git rebase --continue
添加新的合并信息
Create a complete page -> wq!
比较暂存区与HEAD做比较,即你准备提交的和上次提交的内容做比较
git diff --cached
比较工作区与暂存区做比较
git diff
git diff -- readme.md style.css
将暂存区的所有修改恢复为HEAD
git reset HEAD
将工作区的文件所有修改恢复为暂存区一样
对工作区的修改做变更用checkout;对暂存区的修改做变更用reset
git checkout -- index.html
将暂存区的部分修改恢复为HEAD
git reset HEAD -- readme.md
查看不同提交指定文件的差异
git diff temp master -- index.html
git diff 320f27 03a535 -- index.html
正确删除文件的姿势
git rm readme
开发临时加塞了紧急任务
git stash
git stash list
...do something
git stash apply # peek + git stash drop
git stash pop # pop