Git 核心概念与实操

参考:https://www.liaoxuefeng.com/wiki/896043488029600

1 版本回退

原文链接:https://www.liaoxuefeng.com/wiki/896043488029600/897013573512192
首先 git log 查看提交记录
在这里插入图片描述
在Git中,用 HEAD 表示当前版本
上一个版本就是 HEAD^ ,上上一个版本就是 HEAD^^,往上100个版本写成 HEAD~100
要把当前版本回退到上一个版本,就可以使用 git reset 命令:

git reset --hard HEAD^
git reset --hard commit的id
(如果使用cmd命令行,第一种要加引号:git reset --hard "HEAD^"

当前文件内容:
在这里插入图片描述

输入回退命令后:
在这里插入图片描述

在这里插入图片描述
如果想要回到我的最近版本:

git reset --hard 70597932a3e34eab2fd8c2eae42dd5520e3351c6

在这里插入图片描述
在这里插入图片描述

2 工作区、暂存区、本地仓库、远程仓库

工作区: 工作区就是你克隆项目到本地后,项目所在的文件夹目录。

暂存区: 用于存储工作区中添加上来的变更(新增、修改、删除)的文件的地方。操作时,使用git add .会将本地所有新增、变更、删除过的文件的情况存入暂存区中。

本地仓库: 用于存储本地工作区和暂存区提交上来的变更(新增、修改、删除)过的文件的地方。操作时,使用git commit –m “本次操作描述” 可以将添加到暂存区的修改的文件提交到本地仓库中。

远程仓库: 简单来说,就是我们搭建在服务器上的 git 远程仓库(如 github )。操作时,使用git push origin 分支名称,将本次仓库存储的当前分支的修改推送至远程仓库中的对应分支中。
在这里插入图片描述

3 分支合并

https://zhuanlan.zhihu.com/p/192972614

3.1 Fast-forward

Fast-forward 是最简单的一种合并策略,如上图中将 some feature 分支合并进 master 分支,Git 只需要将 master 分支的指向移动到最后一个 commit 节点上。
Fast-forward 是 Git 在合并两个没有分叉的分支时的默认行为
Fast-forward方式实操过程: https://www.liaoxuefeng.com/wiki/896043488029600/900005860592480
在这里插入图片描述

3.2 Recursive

Git 在合并两个有分叉的分支时的默认行为,会递归寻找路径最短的唯一共同祖先节点,然后以其为 base 节点进行递归三向合并
如下图这种简单的情况,当我们要合并中间两个节点的时候,找到他们的共同祖先节点(左边第一个),接着进行三向合并得到结果为 B
在这里插入图片描述

3.3 Ours & Theirs

4 处理冲突

https://www.liaoxuefeng.com/wiki/896043488029600/900004111093344

5 git stash 存储工作区

https://www.liaoxuefeng.com/wiki/896043488029600/900388704535136
若当前正在 dev 上进行开发,突然收到 bug 修改任务,要在分支 issue-101 来修复。但是当前正在dev上进行的工作还没完成,不能提交。
Git提供了一个 git stash 功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:
执行 git stash 后,用 git status 查看工作区,就是干净的
然后我们切换到分支 issue-101 修复 bug ,修复完成后,是时候接着回到 dev 分支干活了!
回到 dev,工作区是干净的,刚才的工作现场存到哪去了?用 git stash list 命令看看工作现场
然后用 git stash pop,恢复工作现场,同时删除 stash 内容
再用 git stash list 查看,就看不到任何stash内容了

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值