git_tutorials/Lab1/lab1.md

63 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 创建、修改、暂存和提交
## Git整体流程图
![](./git.png)
## 创建
要将现有的软件程序纳入git管理首先是创建版本库或称存储库
选中要管理的工程文件夹右键选择“Git 在这里创建版本库”点击“确定”git就会在工程目录下创建“.git”文件夹一个空白的版本库就创建成功。
## 修改
在工程目录下右键选择“TortoiseGit”在“TortoiseGit”下选择“检查已修改”会打开一个窗口来显示从上次提交到现在的所有修改。
双击文件可以查看修改的内容。
上一步创建了空白的版本库,所以这里是工程目录下的所有文件。
### 忽略
并不是所有的文件都需要纳入Git管理有些文件与源代码无关只是编译生成的中间文件或者用户个人的配置纳入管理反而增加存储库的内存。
这里拿Keil的工程举例
![](./hello_struct.png)
“./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支持勾选文件提交因此用不到暂存功能它的提交过程为修改 >> 提交。
### 提交
紧跟上面的操作,点击“提交”,弹出提交窗口:
![](./hello_submit.png)
最上面是选择提交到哪个分支现在只有“master”分支。
然后是本次提交的日志信息日志信息必须写不写提交不了。日志信息应尽可能详细和之前的readme.txt一样。
下面选择要提交的文件,这里我们点击“全部”。
最后点击提交。
## 检出
有时候要临时回到之前的版本工作,这时候用到“检出”。
在工程目录下右键选择“TortoiseGit”在“TortoiseGit”下选择“切换/检出”,弹出“切换/检出”窗口,选择“提交”,点击右边三个点,选择要检出的版本,点确定,然后下面注意不需要选创建新分支(不然还得手动删除),点击确定。
回到最新更新一样操作。
![](./git_checkout.png)
## 回退(慎用)
有时候最近的几次变更不想要了。这时候就要回退了。
在工程目录下右键选择“TortoiseGit”在“TortoiseGit”下选择“显示日志”弹出“日志信息”窗口选中要回退到的更改右键选择“重置xxx到此版本”。点击确定重置类型选择合适的类型
- 软重置,要删除的更改退回到暂存区
- 混合,要删除的更改退回到修改状态,适用于稍作改动再提交
- 硬重置,彻底删除更改
点击“刷新”,所选版本之后的版本消失了。
## 贮藏更改
有些情况下,正在开发的功能被打断,需要做其他工作,例如紧急修复BUG。这时需要保留已经更改的代码 “检查已修改” >> 贮藏 >> 填写贮藏日志 >> 确定
其他工作忙完后,弹出贮藏