6
6
7
7
8
8
## 安装并配置 Git
9
+
10
+ ![ git] ( http://p9ucdlghd.bkt.clouddn.com/git-logo-2color-lightbg.png )
11
+
9
12
首先你需要在自己电脑上安装 Git,对于已经安装过 Git 并配置好相关信息的小伙伴们,这第一步就不用再做啦~
10
13
11
14
对于 Windows 用户,Git 官网下载链接,[ 请戳这里] ( https://git-scm.com/downloads ) ,下载完安装即可。
15
18
sudo apt-get install git
16
19
```
17
20
21
+ [ 更多 Git 相关安装指引,需要的戳戳戳😀。] ( https://help.github.com/articles/set-up-git/ )
22
+
18
23
安装完成之后,
19
24
Windows 用户打开 Git Bash 命令行窗口,而 Linux 用户打开 ` Terminal ` 窗口,进行后续操作。
20
25
21
26
设置 Git 用户名及邮箱,注意,要与 GitHub 上的用户名及邮箱** 保持一致** ,此前有小伙伴邮箱没有与 GitHub 帐户邮箱同步,导致后续出现了一点小问题。
22
27
23
- 本次演示 ,我使用 GitHub 帐户 ` igayhub ` ,邮箱为 ` contact@yanglibin.info ` 。因此,
28
+ 在本次演示中 ,我使用 GitHub 帐户 ` igayhub ` ,邮箱为 ` contact@yanglibin.info ` 。因此,
24
29
25
30
设置 Git 用户名:
26
31
``` bash
@@ -50,12 +55,12 @@ git config --global user.email "contact@yanglibin.info"
50
55
51
56
![ clone-fork-doocs-leetcode] ( http://p9ucdlghd.bkt.clouddn.com/clone-fork-doocs-leetcode.png )
52
57
53
- 复制该链接,在命令行窗口中执行命令:
58
+ 复制该链接,在命令行窗口中执行命令 “ ` git clone ` + 刚才复制的 ` HTTPS ` 链接”,如 :
54
59
```
55
60
git clone https://github.com/igayhub/leetcode.git
56
61
```
57
62
58
- 注意啦,这里是 clone 自己帐户下(如: ` igayhub ` )的 leetcode 仓库噢 ,不是 doocs 下的 。
63
+ 注意啦,这里是 clone 自己帐户下(如: ` igayhub ` )的 leetcode 仓库 ,不是 doocs 下的噢 。
59
64
60
65
命令执行的过程如下:
61
66
``` bash
@@ -77,24 +82,24 @@ Checking connectivity... done.
77
82
cd leetcode
78
83
```
79
84
80
- 创建新分支 ` dev ` ,` dev ` 为分支名,当然,你也可以命名为其它名字,这个看个人喜好~
85
+ 用 ` git checkout ` 命令创建新分支 ` dev ` ,` dev ` 为分支名,当然,你也可以命名为其它名字,这个看个人喜好~
81
86
82
87
``` bash
83
88
git checkout -b dev
84
89
```
85
90
86
- 可以看到,它创建并切换到新分支 ` dev ` 下了。
91
+ 执行完上面的命令之后, 可以看到,它创建并切换到新分支 ` dev ` 下了。
87
92
```
88
93
Switched to a new branch 'dev'
89
94
```
90
95
91
96
## 做出更改并 commit
92
- 之后你可以对仓库中的文件进行修改 ,或者创建新文件,添加 ` Solution ` 代码等。在这里我对 ` Solution 020 ` 下的 ` README.md ` 文件做了修改 。
97
+ 之后你就在当前 ` dev ` 分支下对文件做出改动。你可以对仓库中的文件进行修改 ,或者创建新文件,添加 ` Solution ` 代码等。在这里我对 ` Solution 020 ` 下的 ` README.md ` 文件做一下修改 。
93
98
``` bash
94
99
vim README.md
95
100
```
96
101
97
- 修改后,执行 ` add ` 命令添加你的改动,然后执行 ` commit ` 命令提交你的改动到本地 Git。` -m ` 之后是一些备注信息,备注信息要尽量体现你的改动,比如我是对 ` README.md ` 做了修改,那我备注信息就写 ` Update solution 020.... ` 。
102
+ 修改后,执行 ` add ` 命令添加你的改动,然后执行 ` commit ` 命令提交你的改动到本地 Git。` -m ` 之后是一些备注信息,备注信息要尽量体现你的改动,比如我是对 ` Solution 020 ` 下的 ` README.md ` 做了修改,那么备注信息我就写 ` Update solution 020 [README.md] ` 。
98
103
99
104
``` bash
100
105
git add -A
@@ -135,7 +140,77 @@ push 之后,在你的 GitHub 项目上,可以看到 `Compare & pull request`
135
140
136
141
![ create-pull-request] ( http://p9ucdlghd.bkt.clouddn.com/create-pull-request.png )
137
142
138
- pull request 完成之后,我这边就能看到啦~
143
+ pull request 完成之后,我会收到一份邮件通知。
144
+
145
+ ![ email-of-pull-request] ( http://p9ucdlghd.bkt.clouddn.com/email-of-pull-request.jpg )
146
+
147
+ 不久之后,如果 Review 完觉得没有问题的话,我会把你所有的 create/update 变化合并到这个项目的主分支。合并后,我想你应该也会收到电子邮件通知吧😁。这样也就完成了整个 contribute 过程啦~
148
+
149
+ ## 与当前主分支保持同步
150
+ 如何将你的代码仓库与当前 ` doocs/leetcode ` 主分支保持同步呢?因为其它小伙伴也会把代码 merge 到主分支,而你的本地仓库没有这些代码,你需要同步一下~
151
+
152
+ 首先,需要确保你在自己的 master 分支下,使用 ` git status ` 查看当前所在分支。
153
+
154
+ ``` bash
155
+ git status
156
+ On branch dev
157
+ nothing to commit, working directory clean
158
+ ```
159
+
160
+ 可以看到,当前是在 ` dev ` 分支下,所以应该使用 ` git checkout ` 切换到 ` master ` :
161
+ ``` bash
162
+ git checkout master
163
+ Switched to branch ' master'
164
+ Your branch is up-to-date with ' origin/master' .
165
+ ```
166
+
167
+ 然后,你需要添加远程主分支仓库 doocs/leetcode 到 git。执行命令:
168
+ ``` bash
169
+ git remote add upstream https://github.com/doocs/leetcode.git
170
+ ```
171
+
172
+ 接着,利用 ` git fetch ` 命令获取远程仓库内容。
173
+ ``` bash
174
+ git fetch upstream
175
+ ```
176
+
177
+ 该命令的执行过程如下:
178
+ ``` bash
179
+ remote: Enumerating objects: 35, done.
180
+ remote: Counting objects: 100% (30/30), done.
181
+ remote: Compressing objects: 100% (12/12), done.
182
+ remote: Total 20 (delta 9), reused 16 (delta 7), pack-reused 0
183
+ Unpacking objects: 100% (20/20), done.
184
+ From https://github.com/doocs/leetcode
185
+ * [new branch] master -> upstream/master
186
+ ```
187
+
188
+ 最后,使用 ` git rebase ` 合并代码,并 push 到你的 GitHub 仓库。
189
+ ``` bash
190
+ git rebase upstream/master
191
+ First, rewinding head to replay your work on top of it...
192
+ Fast-forwarded master to upstream/master.
193
+ ```
194
+
195
+ push 的时候,一样需要输入你的 GitHub 用户名和密码噢~
196
+ ``` bash
197
+ git push origin master
198
+ Username for ' https://github.com' : igayhub
199
+ Password for ' https://igayhub@github.com' :
200
+ Counting objects: 20, done.
201
+ Delta compression using up to 4 threads.
202
+ Compressing objects: 100% (19/19), done.
203
+ Writing objects: 100% (20/20), 5.62 KiB | 0 bytes/s, done.
204
+ Total 20 (delta 9), reused 0 (delta 0)
205
+ remote: Resolving deltas: 100% (9/9), completed with 6 local objects.
206
+ To https://github.com/igayhub/leetcode.git
207
+ d8fdeb6..5a088d3 master -> master
208
+ ```
209
+
210
+ 😊现在,所有仓库就都同步啦~
139
211
212
+ ## 资料相关
140
213
141
- (完)
214
+ - [ 😲了解更多 Git 相关,点这里噢。] ( https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 )
215
+ - [ 🤭如何在 GitHub 上用 Markdown 写作,看这儿。] ( https://github.com/guodongxiaren/README )
216
+ - [ 😄如何写出赏心悦目的中文技术文档,这儿有推荐。] ( https://github.com/ruanyf/document-style-guide )
0 commit comments