Compare commits
21 Commits
Author | SHA1 | Date |
---|---|---|
|
c70c7280c3 | |
|
71a8cbeb63 | |
|
ccd287340d | |
|
975fcf4cb3 | |
|
caf33dbe07 | |
|
aa4cc6100a | |
|
8e3af01327 | |
|
e724517172 | |
|
454e758f12 | |
|
bcab3adc12 | |
|
c748f12eb7 | |
|
318476a2fc | |
|
0c730121fe | |
|
96c180404f | |
|
8aebbca0b2 | |
|
0fc81ab31c | |
|
2c68859608 | |
|
e53c1d1a13 | |
|
90eaabae86 | |
|
25d9de05fe | |
|
6725477bca |
After Width: | Height: | Size: 38 KiB |
15
Lab0/lab0.md
|
@ -1,8 +1,11 @@
|
|||
# Git环境搭建
|
||||
## 资源准备
|
||||
- git服务器账号注册
|
||||
- Git for Windows. https://git-scm.com/download/win, 一般选择“64-bit Git for Windows Setup”版本
|
||||
- TortoiseGit. https://tortoisegit.org/download/, 需要下载安装两个软件,一个主程序的安装包,另一个为语言支持包
|
||||
- git服务器账号注册
|
||||
|
||||
Git软件安装包已经在服务器准备好了,http://172.188.24.12:3000/mengfanxing/git_tutorials/releases
|
||||

|
||||
## 安装教程
|
||||
### Git for Windows
|
||||
打开下载好的Git应用程序开始安装:
|
||||
|
@ -12,8 +15,8 @@
|
|||
3. 选择组件,没有特别需求直接Next
|
||||

|
||||
4. 在开始菜单创建git文件夹
|
||||

|
||||
5. 为git选择默认的文本编辑器,初始值为vim,可以选择VSCode、NotePad++等
|
||||

|
||||
5. 为git选择默认的文本编辑器,初始值为vim,可以选择VSCode、NotePad++等
|
||||

|
||||
6. git默认分支名称,直接Next
|
||||

|
||||
|
@ -22,13 +25,13 @@
|
|||
8. 后面的全部默认Next,然后等待安装成功
|
||||
|
||||
### TortoiseGit
|
||||
先安装TortoiseGit主程序
|
||||
打开下载好的“TortoiseGit-2.15.0.0-64bit.msi”:
|
||||
先安装TortoiseGit主程序
|
||||
打开下载好的“TortoiseGit-2.15.0.0-64bit.msi”:
|
||||
一路Next,根据下图所示,选择安装位置,Next,Install
|
||||

|
||||
安装完后,第一次打开会让你选择语言包。 不要关闭,先放到一边。
|
||||
先安装TortoiseGit 语言包
|
||||
打开“TortoiseGit-LanguagePack-2.15.0.0-64bit-zh_CN.msi”,直接下一步,等待安装完成。
|
||||
打开“TortoiseGit-LanguagePack-2.15.0.0-64bit-zh_CN.msi”,直接下一步,等待安装完成。
|
||||
这时回到TortoiseGit,点击“Refresh”,会出来中文选项。
|
||||
一路下一页,在“配置用户信息”界面,填入用户名和邮箱,要和在公司服务器注册时保持一致。
|
||||

|
||||
|
|
After Width: | Height: | Size: 137 KiB |
After Width: | Height: | Size: 15 KiB |
39
Lab1/lab1.md
|
@ -1,4 +1,6 @@
|
|||
# 创建、修改、暂存和提交
|
||||
## Git整体流程图
|
||||

|
||||
## 创建
|
||||
要将现有的软件程序纳入git管理,首先是创建版本库(或称存储库):
|
||||
选中要管理的工程文件夹,右键选择“Git 在这里创建版本库”,点击“确定”,git就会在工程目录下创建“.git”文件夹,一个空白的版本库就创建成功。
|
||||
|
@ -10,36 +12,51 @@
|
|||
并不是所有的文件都需要纳入Git管理,有些文件与源代码无关,只是编译生成的中间文件或者用户个人的配置,纳入管理反而增加存储库的内存。
|
||||
这里拿Keil的工程举例:
|
||||

|
||||
“./objects”文件夹下编译生成的中间文件(.o、.d、.crf)是用不到版本管理的。但是生成的hex文件**可以选择**记录。“./listing”下的map文件也是用不到的。
|
||||
“./objects”文件夹下编译生成的中间文件(.o、.d、.crf)是用不到版本管理的。但是生成的hex、bin、scf文件**可以选择**记录。“./listing”下的map文件可以纳入管理。
|
||||
用户自己的uvguix文件,不会影响编译结果,也没必要管理。
|
||||
我们通过创建.gitignore文件,确定工作目录下哪些文件要纳入管理,哪些文件要忽略掉。
|
||||
举例:在Hello目录下创建 “.gitignore” 文件,将./objects文件夹下编译生成的中间文件忽略掉,但是保留生成的hex文件。内容如下:
|
||||
举例:在Hello目录下创建 “.gitignore” 文件,将./objects文件夹下编译生成的中间文件忽略掉,但是保留生成的hex、bin、scf文件。内容如下:
|
||||
```
|
||||
#这是注释
|
||||
#忽略整个listing文件夹
|
||||
/listing
|
||||
#忽略某个文件夹下的所有文件
|
||||
#Git管理忽略文件
|
||||
#忽略objects文件夹下的所有文件
|
||||
/objects/*
|
||||
#在上面基础上将hex文件纳入管理(可选)
|
||||
#在上面基础上将hex文件纳入管理
|
||||
!/objects/*.hex
|
||||
#在上面基础上将bin文件纳入管理
|
||||
!/objects/*.bin
|
||||
#在上面基础上将sct文件纳入管理
|
||||
!/objects/*.sct
|
||||
#忽略keil的用户uvguix文件
|
||||
*.uvguix.*
|
||||
#忽略JLinkLog.txt文件
|
||||
#忽略单独一个JLinkLog.txt文件
|
||||
JLinkLog.txt
|
||||
```
|
||||
现在在“检查已修改”窗口,点击“刷新”按钮,./objects文件夹下只剩hex文件,./listing文件夹消失,uvguix文件消失。
|
||||
现在回到“检查已修改”窗口,点击“刷新”按钮,./objects文件夹下只剩hex、bin、scf文件,uvguix文件消失,JLinkLog.txt文件消失。
|
||||
## 暂存和提交
|
||||
### 暂存
|
||||
在其他Git客户端中可能有暂存的概念,它们提交的过程为:修改 >> 暂存 >> 提交。
|
||||
暂存主要用于分批提交,比如已经开发了A、B两个功能,想要把A、B分开提交,可以先把A的文件放在暂存区,然后提交。再把B放到暂存区,然后提交。
|
||||
TortoiseGitz支持勾选文件提交,因此用不到暂存功能,它的提交过程为:修改 >> 提交。
|
||||
### 提交
|
||||
紧跟上面的操作,点击“提交”,弹出提交窗口:
|
||||

|
||||
紧跟上面的操作,点击“提交”,弹出提交窗口:
|
||||

|
||||
最上面是选择提交到哪个分支,现在只有“master”分支。
|
||||
然后是本次提交的日志信息,日志信息必须写,不写提交不了。日志信息应尽可能详细,和之前的readme.txt一样。
|
||||
下面选择要提交的文件,这里我们点击“全部”。
|
||||
最后点击提交。
|
||||
## 检出
|
||||
有时候要临时回到之前的版本工作,这时候用到“检出”。
|
||||
在工程目录下,右键选择“TortoiseGit”,在“TortoiseGit”下选择“切换/检出”,弹出“切换/检出”窗口,选择“提交”,点击右边三个点,选择要检出的版本,点确定,然后下面注意不需要选创建新分支(不然还得手动删除),点击确定。
|
||||
回到最新更新一样操作。
|
||||

|
||||
## 回退(慎用)
|
||||
有时候最近的几次变更不想要了。这时候就要回退了。
|
||||
在工程目录下,右键选择“TortoiseGit”,在“TortoiseGit”下选择“显示日志”,弹出“日志信息”窗口,选中要回退到的更改,右键选择“重置xxx到此版本”。点击确定,重置类型选择合适的类型:
|
||||
- 软重置,要删除的更改退回到暂存区
|
||||
- 混合,要删除的更改退回到修改状态,适用于稍作改动再提交
|
||||
- 硬重置,彻底删除更改
|
||||
|
||||
点击“刷新”,所选版本之后的版本消失了。
|
||||
## 贮藏更改
|
||||
有些情况下,正在开发的功能被打断,需要做其他工作,例如紧急修复BUG。这时需要保留已经更改的代码, “检查已修改” >> 贮藏 >> 填写贮藏日志 >> 确定
|
||||
其他工作忙完后,弹出贮藏
|
||||
|
|
26
Lab2/Lab2.md
|
@ -1,6 +1,24 @@
|
|||
## 推送
|
||||
在前一章我们在本地创建了版本库,现在把它推送到服务器。
|
||||
### 服务器新建仓库
|
||||
登录到[服务器](http://172.188.24.12:3000),点击右上角的“+”,选择“创建仓库”。
|
||||

|
||||

|
||||
填写“仓库名称”和“仓库描述”,正式应用时“可见性”记得勾选。
|
||||
其他的默认即可,点击“创建仓库”,一个新的仓库便创建完成。
|
||||
### 推送
|
||||
在前一章的工作目录下,右键菜单选择“TortoiseGit”,点击“推送”,弹出推送窗口。
|
||||
在“目标” >> "远端"下,点击"管理"按钮,添加远程仓库的链接。
|
||||

|
||||

|
||||
在URL中填写复制的链接,点击确定。
|
||||
选择刚添加的远程仓库“origin”,点击“确定”,等待推送完成。第一次推送时,会做身份验证。
|
||||
刷新网页,可以看到代码已经同步到服务器。
|
||||
## 克隆
|
||||
指将远端服务器的存储库下载到本地
|
||||
拿本存储库举例,在本地新建一个文件夹,进入文件夹,右键菜单选择“Git 克隆”,弹出克隆窗口,在URL输入"http://172.188.24.12:3000/mengfanxing/git_tutorials.git",前面的链接可以在服务器存储库界面复制。点击确定,开始克隆,等待克隆完成,然后在本地文件夹就可以看到名为“git_tutorials”的存储库。
|
||||
指将远端服务器的存储库下载到本地。如果想把别人的存储库下载到本地就用到克隆了。
|
||||
拿本存储库举例,在本地新建一个文件夹,进入文件夹,右键菜单选择“Git 克隆”,弹出克隆窗口。
|
||||

|
||||

|
||||
在URL输入"http://172.188.24.12:3000/mengfanxing/git_tutorials.git",前面的链接可以在服务器存储库界面复制。点击确定,开始克隆,等待克隆完成,然后在本地文件夹就可以看到名为“git_tutorials”的存储库。
|
||||
## 拉取
|
||||
由于服务器存储库不只一个人维护,常常出现本地软件版本才V1.0,服务器仓库都更新到V1.3的情况。这时,可以在本地存储库右键菜单选择“TortoiseGit”,然后选择“拉取”,点击确认。这样维持服务器和本地的同步。
|
||||
## 推送
|
||||
多人协作工作时,常常出现服务器程序版本比本地新的情况,需要通过拉取操作维持本地和服务器的同步
|
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 13 KiB |
62
Lab3/lab3.md
|
@ -1,8 +1,60 @@
|
|||
# 分支管理
|
||||
|
||||
前面提交、推送操作都是在“master”分支进行的。针对一个不断迭代的复杂项目,如果全部都在“master”上操作,版本的结构会乱,其他人看不懂哪个提交是稳定的,是生产下发版本,哪个提交是尚在开发版本。
|
||||
针对这一问题,下面介绍Git flow分支模型,大家不一定要严格套这个模型。
|
||||
## Git Flow
|
||||
模型的分支如下:
|
||||
- master
|
||||
- develop
|
||||
- release
|
||||
- hotfix
|
||||
|
||||
多定制版本维护
|
||||
- feature/xxx
|
||||
- hotfix/xxx
|
||||
- release/xxx
|
||||
|
||||
它们的流程图如下:
|
||||

|
||||
## master
|
||||
- master主分支,代码库应该有一个、且仅有一个主分支,主分支存放最稳定的程序版本
|
||||
- 所有用于正式生产下发的版本都应该在master分支上发布
|
||||
- 不能直接在master分支上修改提交,只能从其它分支合并
|
||||
- 所有在master上的提交应该标记tag
|
||||
## develop
|
||||
- develop分支是主开发分支
|
||||
- 用于合并来自feature分支的程序
|
||||
- 从该分支创建release分支
|
||||
- 接收来自release和hotfix分支的优化
|
||||
## feature
|
||||
- 用于新功能的开发
|
||||
- 从develop分支签出
|
||||
- 开发完后合并到develop
|
||||
## hotfix
|
||||
- 用于紧急修复现场出现的bug
|
||||
- 从master签出
|
||||
- 完成修复后要双向合并到master和develop
|
||||
## release
|
||||
- 用于准备版本发布
|
||||
- 从develop分支签出
|
||||
- 等测试组测试通过,双向合并到master和develop
|
||||
## 其他说明
|
||||
远程仓库应该只存在两个分支,一个是master分支,存放生产环境版本,这个分支的代码总是可靠可用的;另一个是develop分支,这个分支用于日常开发。
|
||||
hotfix分支、feature分支和release分支都在本地,原则上不能推送到远程仓库。这三种分支都属于临时性需要,使用完以后,应该删除。
|
||||
develop分支下允许有多个feature分支,且尽量避免冲突;允许在有feature处在开发中的情况下从develop分支拉取到release分支。
|
||||
|
||||
# 分支操作
|
||||
## 创建分支
|
||||
在工程目录下右键菜单选择“TortoiseGit”,点击“创建分支”。
|
||||

|
||||
输入分支名称。“切换到新分支”可选,后面可以手动切换。点击“确认”新分支便创建成功。
|
||||
## 切换分支
|
||||
想要在某个分支上做修改提交,首先要切换到该分支。
|
||||
在工程目录下右键菜单选择“TortoiseGit”,点击“切换/检出”。
|
||||

|
||||
选择分支,点击确认。
|
||||
## 创建标签
|
||||
master分支提交后要加一个标签,用来表示版本号。
|
||||
在工程目录下右键菜单选择“TortoiseGit”,点击“创建标签”。
|
||||
输入标签名称,选择分支即可。
|
||||

|
||||
## 分支推送
|
||||
当某个分支提交的差不多了,就可以推送了。
|
||||
之前推送的是master分支,现在可以选择本地的其他分支。
|
||||

|
||||
值得注意的是“包括标签”选项,按照模型,master分支需要标记Tag版本号,master分支推送时勾选该选项可以将Tag同步到服务器。
|
After Width: | Height: | Size: 289 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 59 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 34 KiB |
After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 9.7 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 9.2 KiB |
|
@ -0,0 +1,90 @@
|
|||
# 基线版本和定制版本同步更改
|
||||
可以参考这个链接
|
||||
https://www.cnblogs.com/Mufasa/p/14431990.html
|
||||
有两种方案:
|
||||
- 多分支
|
||||
- 多仓库
|
||||
|
||||
结合咱们公司项目分配到具体负责人的特点,推荐大家采用 **多仓库**方案创建定制规约版本。
|
||||
|
||||
~~## 多分支~~
|
||||
~~1. 从基线仓库拉取最新的程序到本地~~
|
||||
~~2. 创建新分支代表定制版本,并切换到新分支~~
|
||||
~~3. 做一些定制化修改~~
|
||||
~~4. 测试无误后提交更改~~
|
||||
~~5. 把定制版本分支推送到服务器~~
|
||||
~~6. 基线仓库更新优化~~
|
||||
~~7. 切换到定制版本分支,单次更改可以采用摘取(cherry-pick)命令把基线上的更改提交到当前定制分支。同时同步多次更改可以采用合并命令。~~
|
||||
~~8. 推送定制分支~~
|
||||
|
||||
## 多仓库
|
||||
### 定制版本搭建
|
||||
#### 1. 从基线仓库克隆最新的程序到本地
|
||||
在文件夹右键选择Git克隆,在URL栏填写基线仓库的服务器地址,点击确定
|
||||

|
||||
|
||||
#### 2. 做一些定制化修改,代表定制版本
|
||||
- 如果是新定制版本,直接在当前程序上修改即可
|
||||
- ~~如果是已经存在的定制版本,首先删除基线程序所有文件(保留.git文件夹和.gitignore文件),然后把定制程序复制过来即可。**需要注意的是: 要保证定制程序和基线程序的版本相同。如果定制程序比基线落后的话,会丢失中间版本的更改。**~~
|
||||
拿一个已经存在的定制程序举例,删除基线程序所有文件,只保留.git和.gitignore文件。(这里简化操作,所有操作都在"master"分支进行,如果已经用上"Git Flow"分支管理,应当先切换到"develop"分支,再删除。)
|
||||

|
||||
然后把定制程序复制过来,可以用TortoiseGit查看已修改的内容,此时的已修改应当是基线程序和定制程序的不同点,和用BC对比出来是一样的。
|
||||

|
||||

|
||||
|
||||
#### 3. 提交更改
|
||||
测试无误后提交更改
|
||||

|
||||
|
||||
#### 4. 创建定制版本仓库
|
||||
在服务器新建定制版本仓库。
|
||||
打开TortoiseGit的推送界面,点击“管理”按钮,选中“origin”查看详细信息。会发现“URL”还是原来的基线仓库连接。我们需要将"URL"改成定制仓库的连接。
|
||||
然后我们需要再添加一个名叫“upstream”(上游仓库,**名字可以任意,能表示基线,需要和origin区分开**)的远端仓库,链接为原来基线仓库的链接。后面抓取时会用到。
|
||||
此时的远端列表如下:
|
||||

|
||||

|
||||
#### 5.推送
|
||||
把定制版本程序推送到定制版本仓库,打开TortoiseGit的推送界面,保持远端还是origin,点击确定。
|
||||

|
||||
|
||||
### 实际应用
|
||||
前面的操作把定制版本的架子搭好了,下面就要测试应用了。
|
||||
#### 基线程序的更改同步到定制版本
|
||||

|
||||
##### 1. 基线程序版本更新
|
||||
在基线程序上面做一些更改并且提交推送。
|
||||
##### 2. 定制版本获取基线更改
|
||||
在本地的定制版本库,打开TortoiseGit的获取界面,把远端改成“upstream”,点击确定。
|
||||

|
||||
##### 3. 合并获取的更改
|
||||
打开TortoiseGit的合并界面,分支选择“remotes/upstream/master”,点击确定。
|
||||

|
||||
如果没有冲突,合并会顺利结束;如果有冲突,需要手动解决冲突。
|
||||
合并完成后,就可以测试程序、提交更改、推送更改。
|
||||
<span style="color: red;font-weight: bold;font-size: 24px;">注意,合并只是代码文本的合并,git不会检查字节对齐、EE跨页等问题,仍然需要自己检查改动点。</span>
|
||||
|
||||
#### 定制版本更改同步到基线程序
|
||||
***定制版本更改同步到基线版本仍然采用原来手动比对的方式***
|
||||
下面的方案暂不采用
|
||||
定制版本同步到基线程序要麻烦一些。
|
||||

|
||||
##### 1. 定制版本更改
|
||||
在定制程序上面做一些更改、提交和推送到定制仓库。
|
||||
##### 2. 推送定制版本到基线仓库
|
||||
如何让基线仓库知道定制版本修改了什么呢?给基线仓库也推送一份就可以了。
|
||||
在定制程序下打开TortoiseGit的推送界面,修改要推送到远端的分支名称,不要和master、develop等重要分支重复,并且把远端的连接改为“upstream”,点击确定。
|
||||

|
||||
这样,在服务器上就会多出一个分支“GX”,内容为定制版本的更改。
|
||||
##### 3. 获取基线仓库的更改
|
||||
在基线程序下,打开TortoiseGit的获取界面,点击确定。
|
||||
然后打开TortoiseGit的日志信息界面,点击右上角的超链接(这里是master)
|
||||

|
||||
然后在引用列表选择“remotes/origin/GX”,即上一步新上传的分支。双击打开。
|
||||
##### 4. 摘取更改
|
||||
找到要采纳的更改,右键选择“摘取此提交”,点击“继续”。
|
||||

|
||||
有冲突的会提示冲突,需要解决冲突,没有冲突了,然后点击提交。这样就把定制版本的更改同步到基线。测试无误后就可以推送到基线仓库。
|
||||
##### 5. 删除基线上的定制分支
|
||||
一切都结束后,基线上的定制分支就用不到了,可以删除它。
|
||||
在引用列表界面,选中“remotes/origin/GX”,右键选择“删除远端分支”,这样本地和服务器上都会删除该分支。
|
||||

|
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 216 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 13 KiB |
|
@ -0,0 +1,40 @@
|
|||
# 解决冲突
|
||||
## 文件冲突原因
|
||||
在进行合并、摘取和变基操作时,不可避免的会遇到更改发生冲突,需要先解决冲突,然后才能继续。
|
||||

|
||||
产生冲突的原因很简单:
|
||||
从同一个节点衍生出两个版本A和B, 在相同的位置,A版本改成某个值,B版本改成另个值,然后把B合并到A上,这时git就会触发冲突,两个版本的优先级是相同的,git不知道该采用哪个值,所以就需要人工干预。
|
||||

|
||||
|
||||
## 冲突界面介绍
|
||||
右键TortoiseGit,选择解决冲突,就会弹出冲突列表。
|
||||

|
||||
双击列表中的文件,打开合并窗口。
|
||||

|
||||
### 文本框
|
||||
合并窗口有三个文本框:
|
||||
- 左上角是要导入的版本
|
||||
- 右上角是当前的版本
|
||||
- 下方是合并后的版本
|
||||
|
||||
要注意的是,只有下方的文本框可以编辑,上面两个都是只读的。
|
||||
文本框的左边会有一些小图标,它们代表对应行所做更改的操作类型。
|
||||

|
||||
### 工具栏
|
||||
常用的几个操作:
|
||||
- 标记为已解决:在该文档的所有冲突解决完后点击,会在冲突文件列表中删除该文件。
|
||||
- 上/下一处冲突:快速定位冲突。
|
||||
- 使用左侧文本块:用于快速采纳更改,下面有个三角,可以选择“使用右侧文本块”。
|
||||
|
||||
## 详细操作
|
||||
1. 在冲突列表打开冲突文件。
|
||||
2. 找到下文本框左侧的叹号,该行表示尚未解决的冲突。
|
||||
3. 然后再看上方两文本框的相同位置。
|
||||
- “=”代表该版本的修改前的文本;
|
||||
- “+”代表新增或者修改后的文本;
|
||||
- “-”代表删除该行;
|
||||
4. 然后根据实际情况选择左边或者右边,亦或者两个都不满足,直接在下文本框编辑。
|
||||
5. 用“上/下一处冲突”切换到下一处冲突编辑。
|
||||
6. 全部修改完后,点击“标记为已解决”,然后再保存退出。
|
||||
7. 处理剩下的冲突文件。
|
||||
8. 测试、提交、推送。
|
|
@ -2,7 +2,7 @@
|
|||
研发Git工具内部培训教程
|
||||
## 服务器
|
||||
用浏览器访问公司Git服务器网址 (孙村或临沂的同事需要先打开PLM的VPN):
|
||||
http://172.188.24.12:3000/
|
||||
http://172.188.23.7:3000/
|
||||
后面所有涉及到Git服务器的操作都应保证VPN畅通
|
||||
|
||||
新用户需要先注册:
|
||||
|
@ -12,6 +12,7 @@ http://172.188.24.12:3000/
|
|||
## 教程内容
|
||||
0. [Git环境安装](./Lab0/lab0.md)
|
||||
1. [创建、修改、暂存和提交](./Lab1/lab1.md)
|
||||
2. [克隆、拉取、推送](./Lab2/lab2.md)
|
||||
2. [推送、拉取、克隆](./Lab2/Lab2.md)
|
||||
3. [分支管理](./Lab3/lab3.md)
|
||||
4. [进阶(coming)](./)
|
||||
4. [基线和定制版本同步更改](./Lab4/lab4.md)
|
||||
5. [解决冲突](./Lab5/lab5.md)
|