63 lines
4.2 KiB
Markdown
63 lines
4.2 KiB
Markdown
# 创建、修改、暂存和提交
|
||
## Git整体流程图
|
||

|
||
## 创建
|
||
要将现有的软件程序纳入git管理,首先是创建版本库(或称存储库):
|
||
选中要管理的工程文件夹,右键选择“Git 在这里创建版本库”,点击“确定”,git就会在工程目录下创建“.git”文件夹,一个空白的版本库就创建成功。
|
||
## 修改
|
||
在工程目录下,右键选择“TortoiseGit”,在“TortoiseGit”下选择“检查已修改”,会打开一个窗口来显示从上次提交到现在的所有修改。
|
||
双击文件可以查看修改的内容。
|
||
上一步创建了空白的版本库,所以这里是工程目录下的所有文件。
|
||
### 忽略
|
||
并不是所有的文件都需要纳入Git管理,有些文件与源代码无关,只是编译生成的中间文件或者用户个人的配置,纳入管理反而增加存储库的内存。
|
||
这里拿Keil的工程举例:
|
||

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

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

|
||
## 回退(慎用)
|
||
有时候最近的几次变更不想要了。这时候就要回退了。
|
||
在工程目录下,右键选择“TortoiseGit”,在“TortoiseGit”下选择“显示日志”,弹出“日志信息”窗口,选中要回退到的更改,右键选择“重置xxx到此版本”。点击确定,重置类型选择合适的类型:
|
||
- 软重置,要删除的更改退回到暂存区
|
||
- 混合,要删除的更改退回到修改状态,适用于稍作改动再提交
|
||
- 硬重置,彻底删除更改
|
||
|
||
点击“刷新”,所选版本之后的版本消失了。
|
||
## 贮藏更改
|
||
有些情况下,正在开发的功能被打断,需要做其他工作,例如紧急修复BUG。这时需要保留已经更改的代码, “检查已修改” >> 贮藏 >> 填写贮藏日志 >> 确定
|
||
其他工作忙完后,弹出贮藏
|