“Git:基础”的版本间差异
跳到导航
跳到搜索
小 (Eijux移动页面Git:工作区、暂存区和版本库至Git:基础,不留重定向) |
无编辑摘要 |
||
第18行: | 第18行: | ||
# 执行<code>git checkout .</code>(或<code>git checkout -- <file></code>)命令:会用暂存区全部或指定的文件替换工作区的文件(会清除工作区中未添加到暂存区的改动); | # 执行<code>git checkout .</code>(或<code>git checkout -- <file></code>)命令:会用暂存区全部或指定的文件替换工作区的文件(会清除工作区中未添加到暂存区的改动); | ||
# 执行<code>git checkout HEAD .</code>(或 <code>git checkout HEAD <file></code>)命令:会用<code>HEAD</code>指向的当前分支中的全部或者部分文件替换暂存区和以及工作区中的文件(不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动)。 | # 执行<code>git checkout HEAD .</code>(或 <code>git checkout HEAD <file></code>)命令:会用<code>HEAD</code>指向的当前分支中的全部或者部分文件替换暂存区和以及工作区中的文件(不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动)。 | ||
== 工作流程 == | |||
[[File:git工作流程.png|left|400px]] | |||
项目中使用Git,工作流程一般如下: | |||
# 克隆Git资源作为工作目录; | |||
# 切换到相应开发分支; | |||
# 在克隆的资源上添加或修改文件; | |||
# (如果其他人修改了,你可以更新资源;) | |||
# 在提交前查看修改; | |||
# 提交修改; | |||
# 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交; |
2020年9月18日 (五) 00:18的版本
工作区、暂存区、版本库
- 工作区:(
workspace
)就是电脑里的工作目录。 - 暂存区:(
stage
/index
)。就是存放在.git
目录下的index
文件(即.git/index
)。 - 版本库:(
repository
)就是工作区的隐藏目录.git
。
其中:
- HEAD:当前活跃分支的游标;
- objects:Git的对象库,位于 ".git/objects" 目录下,包含了创建的各种对象及内容;
- 执行
git add
命令(对工作区修改(或新增)的文件):暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中; - 执行
git commit
提交操作:暂存区的目录树写到版本库中,当前分支会做相应的更新。即HEAD
指向的目录树就是提交时暂存区的目录树; - 执行
git reset HEAD
命令:暂存区的目录树会被重写,被HEAD
指向的目录树所替换,但是工作区不受影响; - 执行
git rm --cached <file>
命令:会直接从暂存区删除文件,工作区则不做出改变; - 执行
git checkout .
(或git checkout -- <file>
)命令:会用暂存区全部或指定的文件替换工作区的文件(会清除工作区中未添加到暂存区的改动); - 执行
git checkout HEAD .
(或git checkout HEAD <file>
)命令:会用HEAD
指向的当前分支中的全部或者部分文件替换暂存区和以及工作区中的文件(不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动)。
工作流程
项目中使用Git,工作流程一般如下:
- 克隆Git资源作为工作目录;
- 切换到相应开发分支;
- 在克隆的资源上添加或修改文件;
- (如果其他人修改了,你可以更新资源;)
- 在提交前查看修改;
- 提交修改;
- 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交;