Git版本控制的功能为保存不同版本的代码,保存代码的地方叫做仓库。
每个仓库中有多个分支,每个分支上又有很多节点,每个节点代表一个版本,不同的分支可以进行合并,实现多个功能的同时开发。
一个完整的Git版本控制系统有两个仓库,一个仓库在服务器上,另一个仓库在本地。服务器仓库主要作用为团队协作和多端同步,可以将本地的仓库的某个分支上传至服务器某个分支;本地仓库的作用主要是提交自己的代码至本地仓库某个分支和下载服务器仓库的某个分支。
平时编写代码的某个版本必然是仓库的某个分支的某个节点,该处称为工作空间。
分支的本质为标签,分支的标签只能在分支的头部,可以想象,分支是一条公交车路线,节点是分支的站点,而路线的名称则放在路线头部。head标签可以任意移动,代表的使当前工作空间的节点。
棕色为未加入本地仓库的文件
绿色为已添加但从未提交过的文件
蓝色为提交过但未提交最新修改的文件
黑色为和当前节点相同的文件
提交更新的文件至本地当前工作空间所在的分支。在head分支下无法commit。
当head标签与分支标签在同一处是,则可以进行commit。
将某个文件加入工作空间,在下次commit时,会将该文件提交进本地分支。
显示注释,注释内容为提交者。
弹出气泡提示当前文件的版本、提交者、提交时间。
工作空间内的代码和当前分支的当前节点对比
工作空间内的代码和当前分支之前的节点对比
工作空间内的代码和其他分支最新节点对比
显示当前分支的该节点及之前的节点内容
翻译为回滚。把工作空间未提交的修改删除并将状态返回至当前节点。
右键节点使会出现该选项,选择不同的分支,可以跳转到其他分支的该节点,如果此时工作空间相对于当前节点有改变,且未提交,则会出现提示,可以舍弃改变或者放弃checkout。
重置当前分支到该节点。
如果当前节点不是该分支的最新节点,则该操作与checkout相同。
如果当前节点为该分支的最新节点,且该节点与当前节点为同一分支,则该节点后的节点会删除。如果该节点与当前节点为不同分支,则其在当前分支之后的节点会删除,且当前分支延伸到该节点。
如果选的hard模式,则会舍弃工作空间的修改。
工作空间的状态回到当前分支的上个节点,并弹出commit窗口。
为选择当前分支上一个节点的reset current branch to here操作。
在当前节点位置创建分支
当前分支合并另一个分支,合并后的分支名为当前分支。合并过程中有冲突的地方需要进行手工进行合并。
在无分支的地方进行合并其他分支的操作,会产生分支的路线。
将当前分支合并某个服务器仓库的某个分支。
将当前分支提交至服务器仓库,如果存在冲突则会提示冲突,需要解决冲突。
如果本地有文件改动未提交、且该文件和服务器最新版本有冲突,pull更新会提示错误,无法更新:要么先commit自己的改动然后再通过pull拉取代码,stash的好处是可以先将你的改动暂存到本地仓库中,随时可以取出来再用,但是不用担心下次push到服务器时,把不想提交的改动也push到服务器上,因为stash changes的内容不参与commit和push。
将当前节点未提交改动保存到另一处空间,不参与commit,实现保存非新版本。
与stash changes的功能相反,取出暂存的代码改动到当前节点。
重置当前工作空间为HEAD节点版本。
设置服务器仓库的地址
从服务器仓库地址克隆仓库
以后补充