目录
一、使用git维护项目版本
1.git使用指南---本地git配置
2.git使用指南---拷贝到本地
3.git维护项目原理
二、情景复现
1.git使用指南---考虑情况一:程序员clone后修改并上传
2.git使用指南---考虑情况二:程序员修改文件,取消修改,然后恢复上个版本文件
三、补充说明
一、使用git维护项目版本
1.git使用指南---本地git配置
(以下操作以linux平台为例,windows几乎类似)
("xxxx",为任意字符串; xxxx,为任意命令行字符)
(“”与""已作区分)
(//为注释,命令行输入时务必省去)
安装git
查看当前git版本,若不存在则上网下载安装:
git --version
配置git
添加个人信息:
git config --global user.name "xxxx"
git config --global user.email xxxx
添加默认编辑器:
git config --global core.editor "xxxx" //windows可为code,linux为vim
git config --global -e
git config --global core.autocrlf input //linux用户
git config --global core.autocrlf true //windows用户
2.git使用指南---拷贝到本地
该命令拷贝地址指定版本的完整内容:
git clone http:xxxx
拷贝完成之后,即可使用相关命令在该版本上进行修改、维护。修改后使用相关命令将新版本上传后,其他人可查看该修改
3.git维护项目原理
git维护原理是程序员拷贝中心服务器(此处为github)的数据,然后在本地进行修改,修改完成后,使用git命令指定服务器位置将修改后的版本上传(此为集中维护模式,git也可支持其他维护模式)
整体模型:
本地模型:
二、情景复现
1.git使用指南---考虑情况一:程序员clone后修改并上传
git clone xxxx
程序员在本地修改代码库:
vim aa_test
git status
git add aa_test
前者为加入指定修改文件,后者为加入全部修改文件:
git add .
程序员将修订的版本加入项目版本记录:
git commit –m "xxxx"
程序员添加远端服务器信息(origin为默认远端名,xxxx为http类型地址等):
git remote add origin xxxx
程序员将本地项目数据上传至服务器(master为所维护版本名):
git push origin master
或者
git push origin main_branch //master&main_branch 为项目维护的版本分支名
echo hello > ./aa_test
echo hello > ./bb_test
git status –s
git add .
git status -s
git restore --staged aa_test
git restore --staged bb_test
git log --oneline //单行显示
或
git log
git ls-tree HEAD
git ls-tree HEAD~2 //显示倒数第三版,~后面数字是几就回跳几个版本
git show <文件标识符>
git restore --source=HEAD~2 <文件名> //恢复倒数第三个版本的某文件
三、补充说明
注:
1.每个分支在维护时,均有一个头指针,提供该分支最新版本的地址;如上图的master branch & test branch;根据头插法,每次使用git commit 时将会创建新的实例并将地址加入头指针域;同理,每个版本实例维护一个指向上个版本的指针;当有新的分支产生时,建立新的头结点;我们使用命令来切换到不同的头结点,即可追溯不同版本,上图很好的展示了两个分支(test_version & master branch)的数据结构
2.git版本维护的是修改记录,原理类似linux下的diff命令;故自项目初始化后,git在产生新版本 时并不复制原数据,而是产生修改信息
3.在多人使用github进行上传库时,需要对冲突的修改进行确认