git 常用命令流程

来源:互联网 发布:淘宝不同意退款怎么办 编辑:程序博客网 时间:2024/06/06 00:47

一、git服务器客户端结构

如下图,git属于分布式版本控制工具。每个client(即我们所说的开发人员)在clone服务器端的项目(例如git@xxxx.com:name/xxx.git)后会拷贝服务端的整个仓库(repository )到client端。所以即使服务端的仓库混乱了也可以用可用的client端的复原

git服务器客户端结构

二、基本命令

参考git命令,非常详细
这里主要说下git reset、git revert、git checkout的区别
git checkout是用暂存区的内容覆盖工作区的内容,不能复原 谨慎使用
git reset 撤销git add 或者git commit 的操作,不可复原git commit的操作
git revert 功能同git reset 但是会生成新的commit记录该次操作,之前的commit可以复原,建议用该操作

三、工作流程

提交获取流程
首先看一下上图的基本的提交(红线),撤销(黄线),拉取(绿线)的基本流程。客户端的工作分为三个部分,工作空间、缓存空间、本地仓库。平时我们天天打交道的就是工作空间(即是写代码的地方)。

3.1 撤销流程——撤销add操作

先看下服务器上的master分支现状,目前只有一个TEST.txt文件
这里写图片描述

1.git status查看当前工作区域状态,当前有三个文件被修改。
这里写图片描述

2.分三次用git add 增加file1.txt、file2.txt、file3.txt
这里写图片描述

3.用git reset撤销对文件file1的添加
这里写图片描述

4.使用git commit 和 git push将file2.txt file3.txt提交到远程仓库
这里写图片描述

5.远程仓库已有
这里写图片描述

3.2 撤销流程——撤销commit操作

1.用git add和git commit分三次提交file1.txt file4.txt file5.txt文件,模拟三次提交
这里写图片描述

2.用git log命令查看刚刚提交的三次记录 有三次commit的记录
这里写图片描述

3.用reset撤销HEAD前两次commit操作,可以看见add file5和add file4的commit被撤销了,并且file4.txt file5.txt回到add之前的状态
这里写图片描述

这里写图片描述

4.继续分两次添加提交file4.txt和放file5.txt
这里写图片描述

这里写图片描述

5.用git revert撤销HEAD倒数第三次commit操作并且生成一次新的commit记录该操作
可以看见git log所示内容,git revert将add file1的commit记录撤销并且生成一次新的commit记录
这里写图片描述

6.用git push将本地仓库推送到远程仓库,这时提交的只有add file4和add file5的commit。可以看到服务器上的git仓库中增加了file4.txt和file5.txt
这里写图片描述

3.3 提交代码流程——解决冲突

1.将远程服务器和本地client端的file2.txt文件都修改制造冲突
这里写图片描述

2.将本地file2.txt文件push到远程服务器,发现冲突
这里写图片描述

3.用git pull拉取服务端仓库最新代码
git status 可以看到什么文件是有冲突的 both modified
<<<<< HEAD 到 =========代表的是本地最新的代码
========= 到 b76e5aab5746a05873a5167d3760a6415756ddaf代表的是远程仓库的版本
这里写图片描述

这里写图片描述

这里写图片描述

4.手动合并代码再次提交
这里写图片描述

3.4 比较安全的提交流程

git status #查看当前状态git stash save "message" #将工作区域备份到缓存git pull #拉取远程仓库到本地git stash pop #将最新的一次工作区缓存复原到工作区git status #查看是否有冲突#手动解决冲突git addgit commitgit push

1.同时修改远程仓库和本地的file3.txt制造冲突,本地同时修改file4.txt
这里写图片描述

2.git status 查看状态,发现有file3.txt和file4.txt被修改
这里写图片描述

3.git stash save保存当前工作空间到缓存,并且用git stash list查看当前被缓存的工作空间
这里写图片描述

4.git pull 拉取远程仓库代码
这里写图片描述

5.git stash pop还原缓存到工作环境,发现file3.txt需要 merge
这里写图片描述

6.git status 查看当前状态,可以发现file3.txt有冲突,file4.txt没有冲突
这里写图片描述

7.手动解决file3.txt的冲突
<<<<<<<<<<< Updated upstream 到 ======== 为远程仓库版本
========== 到 >>>>>>>>>>> Stashed changes为本地版本
这里写图片描述
这里写图片描述

8.git add、git commit、 git push提交到远程仓库
这里写图片描述

9.远程仓库文件被修改
这里写图片描述
这里写图片描述

原创粉丝点击