电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
文章
git的几种实用操作(合并代码与暂存复原代码)
分 享
扫描二维码分享
git的几种实用操作(合并代码与暂存复原代码)
git
良知犹存
关注
发布时间: 2020-09-17
丨
阅读: 989
> 总述 > > git工具也用了很久,自己也写了几篇使用教程,今天继续给大家分享一些我工作中使用过的git操作。 > > 1.git合并远程仓库的代码 > > 2.git stash保存当前的修改 > > 这两种情况大家应该都使用比较多,现在大家使用git进行团队开发代码的情况比较普遍,所以我们经常需要进行合并代码;此外,当我们在开发过程中,突然遇到紧急任务插入,我们需要再其他分支进行工作,但是当前分支我们还会再返回继续修改,这个时候代码还有bug,不能直接推到服务器,这个时候就需要我们进行保存当前的状态,等待我们返回继续修改。 作者:良知犹存 转载授权以及围观:欢迎添加微信公众号:Conscience_Remains # 1 **git合并远程仓库的代码** ![img](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL3N6X21tYml6X3BuZy91Y2RZbUdYTGlhOTl4UWRoQlV4Y0padUpONDhzMWliUGlhRjRydmM2OVpBV25QUkZFRVhwdEJBZ1JhQkVyZ0lpY1Ixd3BwV3RmZ1dLV0N5aWIxVjRwaWFLenBQdy82NDA?x-oss-process=image/format,png)![Click and drag to move](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) 这是我们开发代码最常用的的流程,但是程序开发是一个团队的事情,我们时常需要进行合并同事工作完成的模块。工作如下所示: ![img](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL3N6X21tYml6X3BuZy91Y2RZbUdYTGlhOTl4UWRoQlV4Y0padUpONDhzMWliUGlhRjJGbVJGTUVCYzN2QXhMNExQaHAwVWZ5SWFtTE5pYmljZjN4SGQ1ODYxZzlxaWJkRnM5U2Q5QXliZy82NDA?x-oss-process=image/format,png)![Click and drag to move](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) 我介绍一下我比较多使用一种方法git fetch + merge: 获取最新代码到本地进行合并。 **git fetch命令用于从另一个存储库下载对象和引用,git merge用来进行代码的合并。** 首先我们先查看一下我们需要合并的分支 ``` git branch -a 查看全部分支 ``` ![Click and drag to move](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) 当前我的分支为lyn ![img](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL3N6X21tYml6X3BuZy91Y2RZbUdYTGlhOTl4UWRoQlV4Y0padUpONDhzMWliUGlhRmNEV1hCSlZlREl1TURpYjM3aWFyZ0FOaWNyNkhNNVVPSjI0OFlKUUo5b0oxRHVQcHdoN1BLVHM4dy82NDA?x-oss-process=image/format,png)![Click and drag to move](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) 接下来进行需要合并分支的代码获取,我准备获取lyp分支 ``` git fetch origin lyp_001 ``` ![Click and drag to move](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) ![img](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL3N6X21tYml6X3BuZy91Y2RZbUdYTGlhOTl4UWRoQlV4Y0padUpONDhzMWliUGlhRmNBUGhZeFFVZUFmSlhGeUZ0Z3p0VTVJVUdmbmliSFgzQXpMV21mRE1XNmZwdmUxVWljOHo0RldnLzY0MA?x-oss-process=image/format,png)![Click and drag to move](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) 查看两者代码的差异 ``` git log -p lyn lyp_001 ``` ![Click and drag to move](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) ![img](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL3N6X21tYml6X3BuZy91Y2RZbUdYTGlhOTl4UWRoQlV4Y0padUpONDhzMWliUGlhRmliaDlleUpoamljT3RvNklBWGVtR3FsQkhHUjhCZkZ0OEFocHVRaWJrT3FxMjdwaWIwcnZPaWNBelRBLzY0MA?x-oss-process=image/format,png)![Click and drag to move](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) 合并远端的lyp_001代码到当前分支 ``` git merge origin/lyp_001 ``` ![Click and drag to move](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) ![img](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL3N6X21tYml6X3BuZy91Y2RZbUdYTGlhOTl4UWRoQlV4Y0padUpONDhzMWliUGlhRmhpYmR3TkVOcUQwWmo1d3dKZnRGRnZpYUg5SnVsNGFOVThvUU80VW9rcENnMW9ianlzaHRkNXB3LzY0MA?x-oss-process=image/format,png)![Click and drag to move](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) **这个时候就合并完成了代码,然后我们就可以进行合并后的冲突代码修改,然后进行git push了。** # 2 **git stash暂存以及复原当前工作环境** 我们经常遇到紧急的任务,这个时候你必须得放弃现在正在修改的代码,转而切换到其他分支进行工作,但是当前的代码还没有调试成功,无法进行git push所以这个时候我们需要进行本地的暂存,当我们紧急任务完成之后,在还原当前的工作环境。 ![img](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL3N6X21tYml6X3BuZy91Y2RZbUdYTGlhOTl4UWRoQlV4Y0padUpONDhzMWliUGlhRkNueURUMnlqRGtCWFpwRjd6UlFNRzZSSWliQldVZGljMHRhRTJFRVFvcmJHa3pYcThHTzAxMDdBLzY0MA?x-oss-process=image/format,png)![Click and drag to move](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) 首先直接使用git stash命令进行保存环境 ``` git stash ``` ![Click and drag to move](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) 或者 ``` git stash save “修改的信息" ``` ![Click and drag to move](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) ![img](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL3N6X21tYml6X3BuZy91Y2RZbUdYTGlhOTl4UWRoQlV4Y0padUpONDhzMWliUGlhRmE1UVZDWDBoQkNJSkN2ekwxNGw5NlptY05haWNDMnJaUXJlRlBGc2cxOWM0WGljWnpiN0p0aWJBdy82NDA?x-oss-process=image/format,png)![Click and drag to move](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) 其次我们会进行git checkout 或者 git switch 切换到其他分支工作, 使用完成之后我们进行查看我们的暂存区列表。 ``` gitstash list ``` ![Click and drag to move](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) ![img](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL3N6X21tYml6X3BuZy91Y2RZbUdYTGlhOTl4UWRoQlV4Y0padUpONDhzMWliUGlhRkptUzY0bW10RmdiYmliYmlhaWJneG5GR3BmaWJ2RTlKMERscU9oUTVydWFaem5JOVFSdDF2QnM0SEEvNjQw?x-oss-process=image/format,png)![Click and drag to move](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) 然后你可以选择一个你需要的版本进行复原,其中**{0}**为暂存列表的编号选择 ``` git stash apply stash@{0} ``` ![Click and drag to move](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) ![img](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL3N6X21tYml6X3BuZy91Y2RZbUdYTGlhOTl4UWRoQlV4Y0padUpONDhzMWliUGlhRmtRcGZwWXV1WkltQldpYjFHMjNOVWZNUnJSNVdPNHNKaWIwaWNrWjQ2aEFPdnFwV2I0ZkNOaWJKVkEvNjQw?x-oss-process=image/format,png)![Click and drag to move](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) 此外我们还可以删除一些旧的缓存记录 ``` git stash dropstash@{0} 这是删除第一条 ``` ![Click and drag to move](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) ![img](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL3N6X21tYml6X3BuZy91Y2RZbUdYTGlhOTl4UWRoQlV4Y0padUpONDhzMWliUGlhRmliQmdhb01VT2MyS3EyT0lUUG1oVkpBeEUzNU1MWnhSYXRpYlFSUDFzRGFXZVdlR1VDSGdVMEFnLzY0MA?x-oss-process=image/format,png)![Click and drag to move](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) 使用git list就可以查看到删除后的缓存列表 ![img](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL3N6X21tYml6X3BuZy91Y2RZbUdYTGlhOTl4UWRoQlV4Y0padUpONDhzMWliUGlhRnROQzZEcTJjaWJBRWVKQVRwZ3hYSVJOT0FyUVZCWWUyd21SZkFnSTlXNWY5RUdDQjl5eHNNNHcvNjQw?x-oss-process=image/format,png)![Click and drag to move](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) ``` git stash clear :注意这是清空你所有的内容 ``` ![Click and drag to move](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) ![img](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL3N6X21tYml6X3BuZy91Y2RZbUdYTGlhOTl4UWRoQlV4Y0padUpONDhzMWliUGlhRmtKeEkycEZJMXIzTGY3MEpLczIybjRWR2lic3JKQXYzWGljUFM0dm9JTGFjWGRZNFRESXNzemxBLzY0MA?x-oss-process=image/format,png)![Click and drag to move](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) 这就是我分享的一些git使用频次比较多的操作,如果大家有什么更好的思路,欢迎分享交流哈。
原创作品,未经权利人授权禁止转载。详情见
转载须知
。
举报文章
点赞
(
0
)
良知犹存
关注
评论
(0)
登录后可评论,请
登录
或
注册
相关文章推荐
MK-米客方德推出工业级存储卡
Beetle ESP32 C3 蓝牙数据收发
Beetle ESP32 C3 wifi联网获取实时天气信息
开箱测评Beetle ESP32-C3 (RISC-V芯片)模块
正点原子数控电源DP100测评
DP100试用评测-----开箱+初体验
Beetle ESP32 C3环境搭建
【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏之二
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回
我要举报该内容理由
×
广告及垃圾信息
抄袭或未经授权
其它举报理由
请输入您举报的理由(50字以内)
取消
提交