赞
踩
git可视化练习网址
https://learngitbranching.js.org/?locale=zh_CN
首先找一个合适的文件位置进行git本地仓库的初始化,cmd打开控制窗口,可以自己新建一个文件夹
#新建文件夹
mkdir myGit
#进入myGit文件夹
cd myGit
#初始化仓库
git init
能进行基础的代码拉取、提交、更新
git clone 仓库地址
当我们通过git拉取远程代码之后,我们就与远程仓库建立了连接
#将代码提交到本地仓库
git commit -m '提交备注'
#提交到远程之前先进行代码的更新,防止冲突报错。更新之后若本地有冲突,手动在文件中修改冲突
git pull
#提交代码至远程
git push
为了防止多次提交影响远程main分支的稳定性,我们可以在本地创建一个本地分支
#创建本地分支dev
git branch dev
#查看当前所在分支
git branch
#切换到目标分支
git checkout 目标分支名
#通过本地分支进行commit操作,确认无误后与主分支进行融合
#首先切换到主分支
git checkout main
#在main分支上融合dev
git merge dev
第二种合并分支的方法是 git rebase。Rebase 实际上就是取出一系列的提交记录,“复制”它们,然后在另外一个地方逐个的放下去。
#设当前已经创建分支bugFix,两个分支各进行了一次commit,当前处在bugFix分支
#C3'继承C3与C2,并在加在main分支上
git rebase main
由于 bugFix 继承自 main,所以 Git 只是简单的把 main 分支的引用向前移动了一下而已。
#设当前在main分支上
git reabse bugFix
在push到远程仓库之前,我们需要将代码commit到本地仓库,但是如果我们不想要当前提交的commit记录,或者是想要撤销历史commit记录?
#查看commit记录
git log
#将当前分支指向特定的commit记录位置
git reset 上一步查看的哈希值
HEAD 总是指向当前分支上最近一次提交记录。大多数修改提交树的 Git 命令都是从改变 HEAD 的指向开始的。HEAD 通常情况下是指向分支名的(如 bugFix)。在接触 Git 更高级功能之前,我们有必要先学习在你项目的提交树上前后移动的几种方法。
#使HEAD指向某一次的commit记录而不是分支名
git checkout commit记录的哈希值
通过哈希值指定提交记录很不方便,所以 Git 引入了相对引用。使用相对引用的话,可以从一个易于记忆的地方开始计算。
(1)使用 ^ 向上移动 1 个提交记录
(2)使用 ~ 向上移动多个提交记录,如 ~3
该操作符 ~ 后面可以跟一个数字(可选,不跟数字时与 ^语意 相同,向上移动一次),跟数字指定向上移动多少次。
①此处移动相当于分离HEAD进行移动
git checkout main~数值移动
②直接移动分支
#将 main 分支强制指向 HEAD 的第 3 级父提交。
git branch -f main HEAD~3
#将main分支指向自己的第3级父提交
git branch -f main~3
(1)git reset 通过把分支记录回退几个提交记录来实现撤销改动。你可以将这想象成“改写历史”。git reset 向上移动分支,原来指向的提交记录就跟从来没有提交过一样。
(2)在我们要撤销的提交记录后面居然多了一个新提交!这是因为新提交记录 C2’ 引入了更改 —— 这些更改刚好是用来撤销 C2 这个提交的。也就是说 C2’ 的状态与 C1 是相同的。revert 之后就可以把你的更改推送到远程仓库与别人分享啦。
“整理提交记录” ——我想要把这个提交放到这里, 那个提交放到刚才那个提交的后面
(1)cherry-pick
git cherry-pick <提交号>...
(2)rebase
当你知道你所需要的提交记录(并且还知道这些提交记录的哈希值)时, 用 cherry-pick 再好不过了 —— 没有比这更简单的方式了。
但是如果你不清楚你想要的提交记录的哈希值呢?
我们可以利用交互式的 rebase ——
如果你想从一系列的提交记录中找到想要的记录, 这就是最好的方法了
在实际使用时,所谓的 UI 窗口一般会在文本编辑器 —— 如 Vim —— 中打开一个文件。
当 rebase UI界面打开时, 你能做3件事:
调整提交记录的顺序(通过鼠标拖放来完成)
删除你不想要的提交(通过切换 pick 的状态来完成,关闭就意味着你不想要这个提交记录)
合并提交。 遗憾的是由于某种逻辑的原因,我们的课程不支持此功能,因此我不会详细介绍这个操作。简而言之,它允许你把多个提交记录合并成一个。
git rebase -i HEAD~4
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。