git可视化工具Sourcetree使用全攻略(包括各种git冲突解决)
目录
- 导入仓库
- 更新版本操作
- 修改
- 拉取
- 提交
- 分支操作
- 远程分支与本地分支
- 切换分支
- 贮藏
- 删除分支
- 获取远程分支
- 创建新分支
- 合并分支内容
- 冲突
- 合并冲突
- 未拉取便提交冲突
- 拉取代码与本地修改代码有冲突
- 撤销合并操作
- 尾言
导入仓库
首先我们需要知道自己的仓库如何拉取到本地。
这里以码云为例,找到对应的源路径/URL:
复制,然后来到Sourcetree:
更新版本操作
修改
当你本地代码发生改变时,会出现未暂存文件:
拉取
当别人更新了代码,而你本地没有拉取,拉取会亮起,可以点击拉取别人代码:
提交
当你修改了代码,需要提交操作:
分支操作
远程分支与本地分支
分支分为远程仓库的分支,与被你拉取到本地的分支
切换分支
要注意,如果本地有修改
了没有提交的代码,注意是修改
,新增内容一般是不影响的,切换时会报错。
可以先通过提交
操作再切换。
但是问题来了,如果你代码就修改了一半你还不想提交但是又不得已切换分支怎么办呢?看下面。
贮藏
可以暂时保留修改的内容,清空状态区,就可以进行切换分支操作,等切换回来时再应用贮藏区,变回原来修改中的状态。
当我们切换出去再切回来时,再进行应用
删除分支
需要注意的是,删除当前分支时需要切换去别的分支,你不可以删除当前自己所在的分支。
获取远程分支
我删除了本地的dev分支,这时候我想要获取远程的dev分支到本地,如何操作:
需要注意的是检出分支时会自动切换去检出的分支,如果你本地还有修改了未提交的代码,要注意先提交
或者进行贮藏
操作噢。
创建新分支
比如我们希望创建一个测试版本的分支,所有更新操作都在测试版本上做,如果没问题了再合并来主分支,怎么创建呢?
其实也还是检出操作,所以一样要注意本地未提交代码问题。
合并分支内容
我们在test测试分支上提交了代码,我们希望将他合并到master主分支。
首先我们先切回主分支:
冲突
合并冲突
为了测试冲突,我们先在master上创建提交一个简单的内容,注释了的111:
接下来我们切去test分支,在同样的位置,提交一个注释的222:
然后我们切换到master分支,进行将test合并到master的操作,会提示你冲突了:
我们可以看到两个不同版本的状态,冲突内容:
选择你要保留的,如果是我的版本那就是保留//111,如果是他人版本就是保留//222。
但是这里我们合并test,test只修改了这个内容,如果我们选择我的版本
进行合并,虽然进行了合并操作,这次的合并操作便没了什么意义,我们的master分支内容什么都没变。
不过实际项目中我们不会出现这种情况,肯定是视需求而决定需要保留什么内容,比如test除了这个与我们冲突的注释,还新增了其他功能,我们虽然没有采纳这个注释的修改,但是我们合并了新增的功能。
被合并的test分支不会受到合并操作的任何影响,内容不会发生改变,我们的合并操作只是为了让master分支能够得到test上更新的代码。
未拉取便提交冲突
一般多人开发时会遇到的状况。
如果代码没有冲突,你们修改的不是同一个页面的代码,那拉取与提交的先后是不影响代码内容的。
比如别人制作了一个新页面,你没有拉取下来,你修改了原来页面的内容,直接提交。
报错了。
出现这种推送不上去的状态。
这时候不用急,你只要确保不要让自己的错误提交到远程就好
记住,工作中,宁愿自己修改的代码丢失,也千万别覆盖别人修改的代码
其实很简单,我们切回到我们提交前的即可。
接下来先拉取再提交即可。
如果我们先拉取再提交时,先拉取就报错了,一般就是最后一个错误:拉取代码与本地修改代码有冲突
,见下一节。
拉取代码与本地修改代码有冲突
比如别人将注释修改为333,而你本地修改代码时,注释修改成了777。
现在你想提交,先拉取再提交。
拉取时就报错了,死活拉不下来,多少遍也不行。
这时候我们就先提交再拉取。
然后就会告诉你冲突在哪里了,我们就选择保留哪个了,见上文合并冲突
解决方法,解决完冲突再提交即可。
撤销合并操作
假如自己合并了不想合并的内容,想撤销掉一次合并操作,如何进行呢?
上图dev合并到了master上面,这时候我们选择合并前master的那一次提交,选择重置分支到此次提交。
打开强制推送。
不去管提交和拉取,直接选择推送。
把改变内容全部移除和丢弃。
然后就发现合并操作消失了。
尾言
看完这些,使用sourcetree可以解决你日常95%的git版本控制问题啦,觉得有用的话点个赞吧~
git可视化工具Sourcetree使用全攻略(包括各种git冲突解决)相关推荐
- DBGRIDEH 组件在Borland开发工具中应用全攻略
DBGRIDEH 组件在Borland开发工具中应用全攻略 2003-08-05 16:36:18 陈文彬 DBGRIDEH 是Enlib 3.0组件包中的组件之一.E ...
- Git可视化工具-SourceTree
1. 下载 官网的下载地址,可以根据自己的电脑操作系统选择合适的版本下载,我下载的是windows版本 Sourcetree | Free Git GUI for Mac and WindowsA G ...
- Git可视化工具SourceTree的使用
我在前面几篇文章中详细介绍了Git命令行的使用< Git学习札记>< Git学习札记--进阶>,以及使用Xcode中自带的Git可视化工具的使用< Xcode中git的使 ...
- [Git可视化工具] SourceTree
我一直认为对于git这种工具,记忆各种命令细节实在浪费精力.可视化工具提供了便捷友好的途径,GUI界面替代了命令行,让开发人员更专注于代码,也让管理者更易掌握项目进度.正好最近做项目用到,推荐一下. ...
- Git可视化工具SourceTree使用手册:中英文/命令对照表
目录 前言 中英文/命令对照表 顶部操作栏 左侧树 右键工作副本 右键本地分支 右键标签 右键origin 右键远程分支 右键贮藏 右侧工作区 右键工作副本-已/未暂存文件 右键分支-分支列表中的节点 ...
- git可视化工具sourcetree解决中文乱码问题
sourcetree解决中文乱码 一.在终端中输入以下命令 git config --global gui.encoding utf-8git config --global i18n.logoutp ...
- WinXp主题工具与修改全攻略
这一段时间正在研究有关系统美化方面的知识,下面是我在网上收集的资料和大家分享学习一下. Windows XP 采用了全新的主题管理内核,其功能非常强大,能够实现的效果非常炫目,但是居然不支持非官方的桌 ...
- git 可视化工具_最值得推荐的8个git/github项目数据分析工具
何重要的决定都应基于数据,对于信息项目和软件开发亦是如此.如果你不仔细查看描述项目演进的数据就无法了解项目的健康状况,并给出合理的改进措施.为了分析和挖掘这些信息,我们可以从Git存储库和项目所在的代 ...
- 我的世界java版游戏崩溃_我的世界全攻略之-游戏崩溃的解决方法
我的世界崩溃怎么办?下面吾爱网小编给大家带来我的世界无法正常启动的解决方法,需要的朋友可以参考下. 我的世界作为许多玩家都十分喜爱的模拟经营沙盘类游戏,经常有玩家反映在玩我的世界的时候,游戏总是会出现 ...
- 敏捷开发系列学习总结(4)—Git管理工具sourcetree的安装
现在代码管理都流行用git了,小编以前用过clearcase, svn,vss等.现在用了git后,发现git才是最好的,我觉得它最吸引人的地方应该是它的分布式管理吧.git的具体学习,读者可自己去网 ...
最新文章
- 黑客帝国「缸中之脑」有眉目了?培养皿中百万人脑细胞学会打乒乓球,仅用了5分钟...
- nrf51822-使用16位自定义UUID
- 1.1.3 以Self Host方式寄宿Web API
- 软工 课堂作业:选出一个整数组中最大子数组
- 常用技巧 —— 位运算 —— 异或运算实现两个数的交换
- cjson源代码解读 (一)介绍
- 意超级杯尤文小胜AC米兰 C罗获转会后首个冠军
- 【剑指Offer】15顺时针打印矩阵
- 趣谈网络协议(二)传输层
- 五种酷炫代码雨的源代码
- win7原版系统安装及基本设置
- 精准医学:循环肿瘤DNA在检测非小细胞肺癌患者体细胞突变及跟踪肿瘤进展中的作用|精准治疗
- 消除“星期一综合症”--- 大前研一的周末时间分配术
- 谷歌抢注18个“.中国”域名:扫清障碍
- 鲁大师官方透露:神秘新评测即将在北京重磅来袭
- JS内置对象及其用法总结
- 拯救BUG 10五笔输入法Shift键切换中英文问题
- C语言学习笔记(二): 简单的C程序设计
- nginx 拦截非法字符,nginx禁止url访问特定字符,nginx过滤url访问
- 基于Windows10+Python3.8.5+RTX3060实战yolov5准备工作
热门文章
- Iar新建工程配置使用教程
- vivadomatlab图像算法仿真
- 使用 VMware vRealize Automation 6.2.1 中的 Remote Console (VMRC) 选项连接到资源失败,并显示以下错误: 无法建立远程控制台连接
- GoogleMaterialDesign900个实用的Axure图标组件库
- 如何学习32位单片机
- 手机数控模拟器安卓版_数控模拟器手机版下载-数控模拟器安卓手机版v1.1.4-河东软件园...
- java私塾架构二,小弟我在Java私塾学习期间的学习源码
- 解决 WinXP下 libcurl.dll 无法定位程序输入点GetTickCount64问题
- JDK、J2EE、J2SE、J2ME的区别(转-2021-04-30)
- GRE 一个月突击攻略