-
Notifications
You must be signed in to change notification settings - Fork 82
/
Git基础知识.txt
128 lines (114 loc) · 4.99 KB
/
Git基础知识.txt
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
基础分支
master 主分支
develop 开发分支
临时分支(用完删除)
feature 功能分支
release 预发布分支
fixbug 修补分支
说明:临时分支命名形式feature-x,release-0.0,fixbug-x
基本命令
0.检出仓库
git clone /path/to/repository
#如果是远程服务器上的代码库,则:
git clone username@host:/path/to/repository
1.添加与提交
#添加到缓冲区
git add *
#提交代码更改
git commit -m"代码提交信息"
#推送到服务器
git push origin master
2.分支
#创建分支
git checkout -b feature_x
#切换回主分支
git checkout master
#删除新建的分支
git branch -d feature_x
#分支推送到服务器
git push origin <branch>
3.更新与合并
#更新至最新版本
git pull
#合并其他分支到你的当前分支
git merge <branch>
#如果出现冲突,需要正确合并这些冲突,完毕后
git add <filename>
#查看差异
git diff <source_branch> <target_branch>
4.标签
git tag 1.0.0 1b3e2d3gdjd
#查看提交ID
git log
5.替换本地改动
git checkout --<filename>
#假如你想要丢弃你所有的本地改动与提交,可以到服务器上获取最新的版本并将你本地主分支指向到它
git fetch origin
git reset --hard origin/master
主分支Master
代码库应该有一个、且仅有一个主分支。所有提供给用户使用的正式版本,都在这个主分支上发布。Git主分支的名字,默认叫做Master。它是自动建立的,版本库初始化以后,默认就是在主分支在进行开发。
开发分支Develop
主分支只用来分布重大版本,日常开发应该在另一条分支上完成。我们把开发用的分支,叫做Develop。这个分支可以用来生成代码的最新隔夜版本(nightly)。如果想正式对外发布,就在Master分支上,对Develop分支进行"合并"(merge)。
# Git创建Develop分支的命令:
git checkout -b develop master
# 将Develop分支发布到Master分支的命令:
# 切换到Master分支
git checkout master
# 对Develop分支进行合并
git merge --no-ff develop
#这里稍微解释一下,上一条命令的--no-ff参数是什么意思。默认情况下,Git执行"快进式合并"(fast-farward merge),会直接将Master分支指向Develop分支。
#使用--no-ff参数后,会执行正常合并,在Master分支上生成一个新节点。为了保证版本演进的清晰,我们希望采用这种做法。关于合并的更多解释,请参考Benjamin Sandofsky的《Understanding the Git Workflow》。
功能分支
它是为了开发某种特定功能,从Develop分支上面分出来的。开发完成后,要再并入Develop。
#功能分支的名字,可以采用feature-*的形式命名。
#创建一个功能分支:
git checkout -b feature-x develop
#开发完成后,将功能分支合并到develop分支:
git checkout develop
git merge --no-ff feature-x
#删除feature分支:
git branch -d feature-x
预发布分支
它是指发布正式版本之前(即合并到Master分支之前),我们可能需要有一个预发布的版本进行测试。预发布分支是从Develop分支上面分出来的,预发布结束以后,必须合并进Develop和Master分支。它的命名,可以采用release-*的形式。
#创建一个预发布分支
git checkout -b release-1.2 develop
#确认没有问题后,合并到master分支
git checkout master
git merge --no-ff release-1.2
# 对合并生成的新节点,做一个标签
git tag -a 1.2
#再合并到develop分支
git checkout develop
git merge --no-ff release-1.2
#最后,删除预发布分支
git branch -d release-1.2
修补Bug分支
软件正式发布以后,难免会出现bug。这时就需要创建一个分支,进行bug修补。修补bug分支是从Master分支上面分出来的。修补结束以后,再合并进Master和Develop分支。它的命名,可以采用fixbug-*的形式。
#创建一个修补bug分支:
git checkout -b fixbug-0.1 master
修补结束后,合并到master分支:
git checkout master
git merge --no-ff fixbug-0.1
git tag -a 0.1.1
#再合并到develop分支:
git checkout develop
git merge --no-ff fixbug-0.1
#最后,删除"修补bug分支":
git branch -d fixbug-0.1
建议新手阅读这篇文章
http://rogerdudler.github.com/git-guide/index.zh.html
#分子合并模式
#添加一个远程版本库
git remote add smartdevelop https://github.com/smartdevelop/SmartAdmin.git
#获取远程版本库gotgithub的分支和提交
git fetch smartdevelop
#将远程分支合并到当前分支中
git merge smartdevelop/master
#git merge smartdevelop/develop
#提交到本地仓库
git add *
git commit -m""
#推送到服务器
git push
#更新到最新版本
git pull