4.2 KiB
创建、修改、暂存和提交
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。这时需要保留已经更改的代码, “检查已修改” >> 贮藏 >> 填写贮藏日志 >> 确定
其他工作忙完后,弹出贮藏