当前位置:   article > 正文

本地Git

本地git

git可视化练习网址

https://learngitbranching.js.org/?locale=zh_CN
  • 1

一、创建

1.创建版本库repository

首先找一个合适的文件位置进行git本地仓库的初始化,cmd打开控制窗口,可以自己新建一个文件夹

#新建文件夹
mkdir myGit
#进入myGit文件夹
cd myGit
#初始化仓库
git init
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

二、基础操作

能进行基础的代码拉取、提交、更新

1.拉取远程仓库的代码

git clone 仓库地址
  • 1

2.提交本地代码

当我们通过git拉取远程代码之后,我们就与远程仓库建立了连接

#将代码提交到本地仓库
git commit -m '提交备注'
#提交到远程之前先进行代码的更新,防止冲突报错。更新之后若本地有冲突,手动在文件中修改冲突
git pull
#提交代码至远程
git push
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3.创建分支,融合分支

为了防止多次提交影响远程main分支的稳定性,我们可以在本地创建一个本地分支

#创建本地分支dev
git branch dev
#查看当前所在分支
git branch
#切换到目标分支
git checkout 目标分支名
#通过本地分支进行commit操作,确认无误后与主分支进行融合
#首先切换到主分支
git checkout main
#在main分支上融合dev
git merge dev
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

4.rebase

第二种合并分支的方法是 git rebase。Rebase 实际上就是取出一系列的提交记录,“复制”它们,然后在另外一个地方逐个的放下去。

#设当前已经创建分支bugFix,两个分支各进行了一次commit,当前处在bugFix分支
#C3'继承C3与C2,并在加在main分支上
git rebase main
  • 1
  • 2
  • 3

在这里插入图片描述

由于 bugFix 继承自 main,所以 Git 只是简单的把 main 分支的引用向前移动了一下而已。

#设当前在main分支上
git reabse bugFix
  • 1
  • 2

这里是引用

5.commit

在push到远程仓库之前,我们需要将代码commit到本地仓库,但是如果我们不想要当前提交的commit记录,或者是想要撤销历史commit记录?

#查看commit记录
git log
#将当前分支指向特定的commit记录位置
git reset 上一步查看的哈希值
  • 1
  • 2
  • 3
  • 4

6.分离HEAD

HEAD 总是指向当前分支上最近一次提交记录。大多数修改提交树的 Git 命令都是从改变 HEAD 的指向开始的。HEAD 通常情况下是指向分支名的(如 bugFix)。在接触 Git 更高级功能之前,我们有必要先学习在你项目的提交树上前后移动的几种方法。

#使HEAD指向某一次的commit记录而不是分支名
git checkout commit记录的哈希值
  • 1
  • 2

在这里插入图片描述

三、进阶操作

1.相对引用^

通过哈希值指定提交记录很不方便,所以 Git 引入了相对引用。使用相对引用的话,可以从一个易于记忆的地方开始计算。

(1)使用 ^ 向上移动 1 个提交记录
在这里插入图片描述

(2)使用 ~ 向上移动多个提交记录,如 ~3

该操作符 ~ 后面可以跟一个数字(可选,不跟数字时与 ^语意 相同,向上移动一次),跟数字指定向上移动多少次。

①此处移动相当于分离HEAD进行移动

git checkout main~数值移动
  • 1

②直接移动分支

#将 main 分支强制指向 HEAD 的第 3 级父提交。
git branch -f main HEAD~3
#将main分支指向自己的第3级父提交
git branch -f main~3
  • 1
  • 2
  • 3
  • 4

2.撤销变更

(1)git reset 通过把分支记录回退几个提交记录来实现撤销改动。你可以将这想象成“改写历史”。git reset 向上移动分支,原来指向的提交记录就跟从来没有提交过一样。
在这里插入图片描述
(2)在我们要撤销的提交记录后面居然多了一个新提交!这是因为新提交记录 C2’ 引入了更改 —— 这些更改刚好是用来撤销 C2 这个提交的。也就是说 C2’ 的状态与 C1 是相同的。revert 之后就可以把你的更改推送到远程仓库与别人分享啦。在这里插入图片描述

3.整理提交记录

“整理提交记录” ——我想要把这个提交放到这里, 那个提交放到刚才那个提交的后面

(1)cherry-pick

git cherry-pick <提交号>...
  • 1

在这里插入图片描述(2)rebase

当你知道你所需要的提交记录(并且还知道这些提交记录的哈希值)时, 用 cherry-pick 再好不过了 —— 没有比这更简单的方式了。
但是如果你不清楚你想要的提交记录的哈希值呢?
我们可以利用交互式的 rebase ——
如果你想从一系列的提交记录中找到想要的记录, 这就是最好的方法了

在实际使用时,所谓的 UI 窗口一般会在文本编辑器 —— 如 Vim —— 中打开一个文件。

当 rebase UI界面打开时, 你能做3件事:
调整提交记录的顺序(通过鼠标拖放来完成)
删除你不想要的提交(通过切换 pick 的状态来完成,关闭就意味着你不想要这个提交记录)
合并提交。 遗憾的是由于某种逻辑的原因,我们的课程不支持此功能,因此我不会详细介绍这个操作。简而言之,它允许你把多个提交记录合并成一个。

git rebase -i HEAD~4
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/460059
推荐阅读
相关标签
  

闽ICP备14008679号