持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击
前言:git 在实际开发过程中的重要性对在座的各位来说想必不用我过多赘述,但是对于 git 中千千万万复杂的命令来讲,在实际开发过程中只有小部分是最经常使用的,今天国庆节第一天,由于疫情原因没回家。闲着没事就给大家总结一下在实际工作中我个人最最最最经常使用的命令,并且我会结合我日常工作流程来讲解。
tips:就不过多介绍 git add-commit-push 这三个命令了
一. git stash + git apply/或(pop)
背景:我需要拿着我修改的代码去和后端对接
已知:
- 我们目前不在同一个分支
- 我们都是从同一个 master 切出去的一个分支,然后各自进行后端代码的开发和前端代码的开发。
- 此时 leader 过来找我,说:“小韩啊,你现在需要去测试xxx的接口看看数据返回有没有问题。”
- 假如我现在的代码还未提交过一次(也就是从来没有执行
commit -m
这条命令)
这种情况非常好处理,假如后端的分支名称是 “feat/test-git” 并且已经推上去远程仓库了
- 这是你修改的文件(实际情况很可能是修改了了多个文件,我这里举例子只修改了一个) ,
执行 git stash -m "备注信息"
命令,将这些修改的文件保存到贮藏区。这个命令会把你修改的代码放到一个独立区域。通过 git stash list
命令可以查看你已保存的个数。
紧接着要想办法去后端的那个分支上了,(这里他必须把他的那个分支推送到远程仓库才可以进行后面的操作)执行 git fetch +[分支名]
,拉取远程分支到本地。
然后执行 git checkout +[分支名]
切换到后端的分支
下一步执行 git stash apply
或者git stash pop
命令。(该命令的大致功能就是可以把你在贮藏区的代码给应用到当前分支)两者的主要区别在于是否会删除掉贮藏区的这份修改。apply
是不会删除,还会保留贮藏区的记录,而stash pop
是会删除掉贮藏区的这个记录。 我个人推荐apply
,因为给了你反悔的机会。并且假如你想测试的分支不是这个后端的,而是另外一个人的分支,那么你同样可以携带着你这份代码过去,然后 apply。
- 此时后端的代码就和你的代码合并到一起了,就可以放心的测试啦~
二. git reset
紧接着的这个命令是我开发中用到次数非常的多的,并且是关键时候可以救命滴~
背景: 假设我现在完成了自己分支的开发,现在有一个 commit
已经提交到了远程仓库(也就是执行过 push 命令了)
看一眼远程仓库,嗯,这个 commit 已经被推过去了。
but,此时你突然发现了这个 commit 的其中某个文件有一个巨大的错误,需要撤销掉这个 commit 重新提交一个 pr。
这时候你可能就需要用到 git reset
命令。其实从名字就可以看出来这个命令是要干什么的。
这时候我们执行 git reset --soft HEAD~1
执行完以后,你会发现暂存区突然出现了刚刚我们提交的那个 commit 的修改文件。
这里有个 git 基础知识的关键点需要去理解清楚。我们首先会发现在 Vscode 里会出现一个细小的变化。
是提醒我们落后了远程仓库一个修改。
我们再去看一下 gitHub仓库 ,好奇怪,为什么这个 commit 还在呢?
再执行一下 git log
看看,发现 gitlog 的内容,刚刚我们提交的那个 commit 确实已经消失了,HEAD 指向的 commit 也是上一条。
这里我们需要特别明白,基本上除了 git pull
这个命令,我们操作的都是本地仓库,你是无法直接影响到远程仓库的。你现在只是本地仓库撤销了这个 commit,但是远程仓库还没有更新。所以你接下来需要执行 git push -f
这个命令,推送这次撤销的动作,来更新远程仓库。告诉远程仓库你刚刚的那个 commit 我不要了。(慎用push -f,使用的前提是你很清楚这个命令会造成什么后果)
这时候我们再去 gitHub 看一下,就会发现。10月2号提交的那个 commit 没有了,最新提交记录的也是昨天的。最重要的是我们的代码也都回来了。
- 接下来你就继续修改你的代码,然后重新提交 pr 即可。
三. git commit --amend
背景:提交的 commit 备注信息有错别字这么办? 别急,git commit --amend
就是解决这个问题滴~
写错字,并且还推上去了。
执行 git commit --amend
会默认修改第一个 commit
记录。
执行完后会跳转到这个页面,这个页面主要是 vim编辑器 打开的样子,不了解 vim 的同学需要自行查阅相关操作。在这里我简单介绍一下在当前页面我们需要用到的命令。
其实你会发现我们的 commit 消息就是第一行文字
这时候按下 i
,没错,就是这个键盘上普普通通的 i
键位。(单词意思:insert:插入 的缩写)然后输入你修改的内容即可