git clone 、pull、stash的故事

git clone 、pull、stash的故事,第1张

git clone 、pull、stash的故事 git基本工作流程 - git初体验

快过年了,在公司很无聊,想写本小说,发现脑子里都是friendHub,根本不配

1. 拉取仓库代码(第一次)

小赖刚进入公司,电脑里面什么都没有,这个时候,他想看看项目的代码,于是他找了主管要了代码的仓库地址(ssh:// github,xxxxxxx.xxxx),他要拉取仓库中代码:执行了以下命令:

git clone ssh:// github,xxxxxxx.xxxx

结果,拉下来了代码,心里乐开了花,但是看了一会辛苦拉下来的代码发现,cao!不是他想要的分支,是main分支上的代码

默认拉下来的都是main(有的仓库叫master) 分支的代码。他想要的是laihu分支,这可有点难受,想晚上找兄弟打把lol发泄一下。

2. 拉取指定分支代码(第一次)

所以这时候他就想拉取指定分支的代码,在他不懈的努力下,他终于发现了一个点,上面这条命令竟然可以这样用;拉取指定的分支

git clone -b <分支名> ssh:// github,xxxxxxx.xxxx

终于,他拉到了想要的分支的代码,他高兴坏了

在后续的工作中,小赖逐渐发现这两条命令不能满足他复杂至极的场景需求,于是他又开始求索,去看了一下,git clone 命令,描述如下

这个命令的描述是,拷贝一个Git仓库到本地,从书面的意思是一整个仓库啊,为什么只有main呢

尼玛,小赖又不会了……

咦,idea右下角怎么有个分支名

确实,刚才的命令把laihu分支的代码拉下来了,抱着coder的不死不休求索态度,他点了进去

看到了local branch(本地分支) 和 remote branch (远程分支)

确实本地只有laihu 分支,远程分支有laihu1 , laihu2 ,main 三个分支,到这儿,拉取代码的两条命令他弄懂了

3. 更新本地代码——本地没有更改

一切都在顺利的进行,他一直在看代码,可是好景不长,有个兄弟突然拉取了跟他一样的分支,并且在三秒钟之内开发完他的需求,突然后又过了3秒,同事的代码竟然直接推到他看的分支上

在感叹同事真尼玛汼丕的同时,也好奇,这个b到底做了什么, 于是想把他的代码同步下来,本地没有做任何更改,他发现别人在远程仓库中提交了新的代码,但是他的本地没有,于是他想把最新的更新拉下来,他执行了以下命令拉取最新的代码:

git pull --rebase

执行命令前

执行命令中

执行命令后

好了,牛逼同事的代码,出来了,他的本地代码又是最新的了,恭喜自己

一看,原来3秒同事装了个杯,啥也没有

4. 在本地仓库中获取其他分支代码

渐入佳境,小赖看懂了代码,他的主管给我分派了一些任务,就这样,他的第一行CRUD给了公司,他有点小兴奋了;兴奋了一会儿,坏了,可恶的同事又在远程仓库他的分支上提交了新代码

可恶,为何不等我先提交,为何同事的实力如此之强,这时他的问题是:自己本地有更新, 远程仓库也有最新代码,他想着有又去执行一下git pull --rebase 中的命令,可是发现报错了

看图中中的提示可以得到的信息是,1、本地有更新;

解决办法:2、把本地更新提交或者暂存起来

首先 ,提交是不可能提交的,因为小赖自认为自己写的还不够好,想再改一改

于是选择暂存,可是怎么暂存呢

4.1 暂存未提交更新

暂存是都知道什么意思,可是git‘的暂存是什么??????

算了,小赖想不出来,耍把泽拉斯,打个P清醒一下,叫上了嘴强王者小李,不负所望,打完p的他顿悟了

暂存的顺序是 1、git add . (后面有个点,表示追踪所有文件)

​ 2、git stash

他发现idea界面上,小赖更新的文件不在了,恢复了原来的代码版本

执行暂存前:

执行暂存中:

执行暂存后:

小赖的代码暂存起来了,如果你想问存在哪儿的???

别管了,大家都是fw,没必要查户口

4.2 拉取最新代码

真正的问题还没有解决,但是按照刚才的提示
小赖认为它可以拉取同事的最新代码了

于是试了一下

果然,小赖觉得自己牛逼坏了,叉会腰

4.3 恢复自己的代码

别人的代码是拉下来了,可是自己的代码呢,怎么把他取消暂存

小赖,这次没有耍泽拉斯,而是抽了一口鞋盒里的烟蒂,脚臭让他灵机一动

只见手不听使唤在键盘上敲出了

git stash pop

犹如天神下凡,他暂存的一行代码(写了一周)又出来了

最后,牛逼同事的代码和他的代码在他的idea里成为了相亲相爱的一家人,没有conflict(冲突)

什么是冲突?怎么解决冲突?好吧下次一定。

回答一下刚才文中的问题,暂存在哪里的呢???

命令:git stash list

小赖明白了,原来是存在…… ??哪里,好吧,只是看到了,其实小赖知道,存在电脑里面的
下次小赖要学习解决(conflict)

推荐文章

git *** 作之pull拉取远程指定分支以及push推送到远程指定分支(https://blog.51cto.com/u_15262460/2883040)

git拉取指定分支的代码(https://blog.csdn.net/weixin_39800144/article/details/78205617)

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5718371.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存