2021.06.18学习Git操作命令笔记

转载一下别人的文章,常用的一些命令:
https://www.jianshu.com/p/93318220cdce

Git 保存的不是文件的变化或者差异,而是一系列不同时刻的文件快照,推荐一个可视化操作git的网站,可以直观的学习一些命令
https://learngitbranching.js.org/?locale=zh_CN

1. git commit (提交记录)

修改代码之后,记得提交代码哟!!

2. git brach <分支名> (创建一个新的分支)

3. git checkout <分支名> (切换到某分支)

切换分支之后可将代码提交到当前分支,新的代码就会保存在当前分支之中

4. git checkout -b <分支名> (创建分支并切换到该分支)

同时创建分支并切换分支,非常nice

5. git merge <分支名> (合并分支,第一种方法)

git checkout a
#切换到a分支之后
git commit
#修改代码之后提交记录
#分支b中不存在分支a提交的记录,将分支a合并到分支b
git checkout b
git merge a
此时分支b已经存在了分支a的记录

6. git rebase <分支名> (合并分支,第二种方法)

例子:
git checkout a
git pull
#切换分支a,并拉取分支a的代码
git checkout b
#切换到b分支后, 修改代码
git commit
#修改完了, 就正常提交代码
#如果有多次b分支的提交,就合并,只有一次可以不合并
git rebase -i HEAD~2 //合并提交 — 2表示合并两个
git rebase a
#将分支a内容合并到分支b
git rebase --continue ---->解决冲突—>
git checkout a
#再切换到分支a或其他目标分支
git merge b
#将分支b合并到分支a
git push
#推送到远程仓库

7. 分离HEAD

HEAD 是一个对当前检出记录的符号引用 —— 也就是指向你正在其基础上进行工作的提交记录。
HEAD 总是指向当前分支上最近一次提交记录。大多数修改提交树的 Git 命令都是从改变 HEAD 的指向开始的。
分离的 HEAD 就是让其指向了某个具体的提交记录而不是分支名。
通过指定提交记录哈希值的方式在 Git 中移动不太方便。在实际应用时,并没有像本程序中这么漂亮的可视化提交树供你参考,所以你就不得不用 git log 来查查看提交记录的哈希值。

8. git log (查看提交记录的哈希值)

9.相对引用

简单的两个用法:
1.使用 ^ 向上移动 1 个提交记录
例子:
git checkout a^ #表示切换到a分支的上个提交记录
git checkout a^^ #表示切换到a分支的上上个提交记录
或者
git checkout a 切换到a分支
git checkout HEAD^ 切换到a分支的上个记录
git checkout HEAD^ 切换到a分支的上上个记录
git checkout HEAD^ 切换到a分支的上上上个记录
2.使用 ~ num 向上移动多个提交记录,如 ~3
实战:可以直接使用 -f 选项让分支指向另一个提交。例如:
git branch -f a HEAD~3
上面的命令会将 a分支强制指向 HEAD记录 的第 3 级父提交
-f 则容许我们将分支强制移动到那个位置。

强制移动分支实例:

在这里插入图片描述

将右侧的HEAD、main、bugFix的位置调换成左图的位置。
实现代码如:
1.HEAD移动到c1的位置上:git checkout c1 或 git checkout HEAD~1
2.main移动到c6的位置上:git branch -f main c6
3.bugFix移动到c0的位置上:git branch -f bugFix c0

git reset (回退提交记录,远程分支是无效的)

git reset 通过把分支记录回退几个提交记录来实现撤销改动。你可以将这想象成“改写历史”。git reset 向上移动分支,原来指向的提交记录就跟从来没有提交过一样。
git reset HEAD~1 向上回退一次记录

git reset (回退提交记录,远程分支是有效的)

虽然在你的本地分支中使用 git reset 很方便,但是这种“改写历史”的方法对大家一起使用的远程分支是无效的哦!
为了撤销更改并分享给别人,我们需要使用 git revert。
git revert HEAD 撤销本次提交
revert 之后就可以把你的更改推送到远程仓库与别人分享啦。

git cherry-pick (选择提交)

git cherry-pick, 命令形式为:
git cherry-pick <提交号>…
如果你想将一些提交复制到当前所在的位置(HEAD)下面的话, Cherry-pick 是最直接的方式了。
比如:
现在有三个分支a、b、c、d,当前分支HEAD是b,此时需要将a、d分支的提交记录复制到当前分支b上:
git cherry-pick a d
通过右侧图实现左侧图:
在这里插入图片描述
执行命令:git cherry-pick bugFix side^ another

交互式的rebase

当你知道你所需要的提交记录(并且还知道这些提交记录的哈希值)时, 用 cherry-pick 再好不过了 —— 没有比这更简单的方式了。
但是如果你不清楚你想要的提交记录的哈希值呢? 幸好 Git 帮你想到了这一点, 我们可以利用交互式的 rebase —— 如果你想从一系列的提交记录中找到想要的记录, 这就是最好的方法了。
交互式 rebase 指的是使用带参数 --interactive 的 rebase 命令, 简写为 -i 。
执行命令如: git rebase -i HEAD~3
通过右侧图实现左侧图:
在这里插入图片描述
执行命令:
git rebase bugFix main
git rebase -i HEAD~3 (弹出ui界面之后将c2、c3删掉,点击完成)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值