IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 在实际工作开发中非常实用的几个 git 命令 -> 正文阅读

[开发工具]在实际工作开发中非常实用的几个 git 命令

前言:git 在实际开发过程中的重要性对在座的各位来说想必不用我过多赘述,但是对于 git 中千千万万复杂的命令来讲,在实际开发过程中只有小部分是最经常使用的,今天国庆节第一天,由于疫情原因没回家。闲着没事就给大家总结一下在实际工作中我个人最最最最经常使用的命令,并且我会结合我日常工作流程来讲解。

tips:就不过多介绍 git add-commit-push 这三个命令了


一. git stash + git apply/或(pop)

背景:我需要拿着我修改的代码去和后端对接

已知:

  1. 我们目前不在同一个分支

  2. 我们都是从同一个 master 切出去的一个分支,然后各自进行后端代码的开发和前端代码的开发。

  3. 此时 leader 过来找我,说:“小韩啊,你现在需要去测试xxx的接口看看数据返回有没有问题。”

  4. 假如我现在的代码还未提交过一次(也就是从来没有执行 commit -m 这条命令)

这种情况非常好处理,假如后端的分支名称是 “feat/test-git” 并且已经推上去远程仓库了

  1. 这是你修改的文件(实际情况很可能是修改了了多个文件,我这里举例子只修改了一个) ,

?

  1. 执行 git stash -m "备注信息" 命令,将这些修改的文件保存到贮藏区。这个命令会把你修改的代码放到一个独立区域。通过 git stash list 命令可以查看你已保存的个数。

?

  1. 紧接着要想办法去后端的那个分支上了,(这里他必须把他的那个分支推送到远程仓库才可以进行后面的操作)执行 git fetch +[分支名],拉取远程分支到本地。

  1. 然后执行 git checkout +[分支名] 切换到后端的分支

?

  1. 下一步执行 git stash apply或者git stash pop命令。(该命令的大致功能就是可以把你在贮藏区的代码给应用到当前分支)两者的主要区别在于是否会删除掉贮藏区的这份修改。apply 是不会删除,还会保留贮藏区的记录,而stash pop 是会删除掉贮藏区的这个记录。 我个人推荐apply,因为给了你反悔的机会。并且假如你想测试的分支不是这个后端的,而是另外一个人的分支,那么你同样可以携带着你这份代码过去,然后 apply。

  2. 此时后端的代码就和你的代码合并到一起了,就可以放心的测试啦~

二. git reset

紧接着的这个命令是我开发中用到次数非常的多的,并且是关键时候可以救命滴~

背景: 假设我现在完成了自己分支的开发,现在有一个 commit 已经提交到了远程仓库(也就是执行过 push 命令了)

看一眼远程仓库,嗯,这个 commit 已经被推过去了。

?

but,此时你突然发现了这个 commit 的其中某个文件有一个巨大的错误,需要撤销掉这个 commit 重新提交一个 pr。

这时候你可能就需要用到 git reset 命令。其实从名字就可以看出来这个命令是要干什么的。

?

  1. 这时候我们执行 git reset --soft HEAD~1

?

  1. 执行完以后,你会发现暂存区突然出现了刚刚我们提交的那个 commit 的修改文件。

?

  1. 这里有个 git 基础知识的关键点需要去理解清楚。我们首先会发现在 Vscode 里会出现一个细小的变化。

?

这里是提醒我们落后了远程仓库一个修改。

  1. 我们再去看一下 gitHub仓库 ,好奇怪,为什么这个 commit 还在呢?

再执行一下 git log 看看,发现 gitlog 的内容,刚刚我们提交的那个 commit 确实已经消失了,HEAD 指向的 commit 也是上一条。

?

  1. 这里我们需要特别明白,基本上除了 git pull 这个命令,我们操作的都是本地仓库,你是无法直接影响到远程仓库的。你现在只是本地仓库撤销了这个 commit,但是远程仓库还没有更新。所以你接下来需要执行 git push -f 这个命令,推送这次撤销的动作,来更新远程仓库。告诉远程仓库你刚刚的那个 commit 我不要了。(慎用push -f,使用的前提是你很清楚这个命令会造成什么后果)

?

  1. 这时候我们再去 gitHub 看一下,就会发现。10月2号提交的那个 commit 没有了,最新提交记录的也是昨天的。最重要的是我们的代码也都回来了。

?

三. git commit --amend

背景:提交的 commit 备注信息有错别字这么办? 别急,git commit --amend 就是解决这个问题滴~

?

  1. 写错字,并且还推上去了。

?

  1. 执行 git commit --amend会默认修改第一个 commit 记录。

  1. 执行完后会跳转到这个页面,这个页面主要是 vim编辑器 打开的样子,不了解 vim 的同学需要自行查阅相关操作。在这里我简单介绍一下在当前页面我们需要用到的命令。

?其实你会发现我们的 commit 消息就是第一行文字

?

  1. 这时候按下 i,没错,就是这个键盘上普普通通的 i 键位。(单词意思:insert:插入 的缩写)然后输入你修改的内容即可

?

(我是真心害怕你们看不懂,我都这样讲解啦,还舍不得点个赞吗?😭)

  1. 接下来就是保存这次修改操作。在 insert 模式下,先按 esc ,退出插入模式,然后按下英文的冒号 :

?

你会发现光标聚焦到了底部。紧接着输入 wq 然后按下回车。这样就执行了保存退出。(w:wirte to disk 写入磁盘,q:quit 退出)

  1. 我们执行一下 git log 看一下,commit 信息确实被修改了。但是同时也要注意左下角,提醒你远程仓库的这个 commit 信息不对称,同时本地这个修改 commit 记录还未提交上去,提醒你提交。

?

  1. 但是在此之前,我们要注意一个细节变化。这是本地 commit 修改过后的 commit-hash标识

这是我们之前的 commit-hash标识,你会发现其实这个命令是删除了上一次 commit,然后重新生成了一个新的 commit 记录

  1. 最后,我们同样需要用到 git push -f 这个命令,来强制把这次修改记录覆盖掉远程仓库的。 (再次提醒:git push -f 在多人协同开发的时候,一定要慎用)

?

  1. 然后看一下远程仓库。

?

四. git reflog

  1. 这个命令是搭配 git reset 使用的,虽然使用的场景有限,但是还简单讲解一下吧。

  2. git reset --hard 这个命令和 git reset --soft 都是重置代码的意思。但是 git reset --hard 命令不会将你修改的代码返回到你的暂存区,而是真正的删除了你撤销掉的 commit 记录。

  3. 这里我们模拟一下场景,现在这个 commit 我希望撤回到暂存区。在上面我们讲解了 reset --soft HEAD~1 这个命令的使用方法。

?

  1. 我们换 reset --hard HEAD~1 试试。

会发现这个修改真的丢了。

  1. 这时候使用 git reflog ,可以查看我们执行 git 相关的所有操作,找到上一次 commit-hard标识 的信息,复制。

  1. 然后执行 git reset --soft [hash-id] 你会发现现在多了一个 还没提交的 commit ,那么它是什么呢?

?

  1. 让我们执行一下 git log 看一下

回来了回来了,都回来了~

总结

代码可以回来,但是属于你青春的那个TA什么时候才可以回来呢?

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 21:02:36  更:2022-10-08 21:04:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:37:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码