sourceTree“重置提交”和“提交回滚”的区别

相信用过sourceTree的伙伴们都认识这两,但是不一定用过这两个功能,甚至是不能很好的把握它两的区别,根据自己最近亲身测试,总算是能小小的总结一下了

image

首先这儿假如,历史版本已经出现了1、2、3、4、5、6、7、8、9,当前的版本是9,讲述执行上面两种操作,分别会有什么效果

1.提交回滚

假如我选中6,执行“提交回滚”之后,你会发现7,8,9的历史操作还在,只是将6的操作还原了,这时候需要注意的是7、8、9的操作会引起提交回滚6的时候产生冲突

2.将master重置到这次版本

假如我选中6,执行“将master重置到这次版本”之后,你会发现这个时候历史列表显示落后4个版本,而且显示出了6中所有的文件变更,相当于回到当时准备提交的状态,这个时候如果你去推送是会报错的,显示的意思就是有要拉取的,但是如果你去拉取的话,你会发现又还原了,又回复重置之前,那怎么办,肯定是只能推送了,通过查阅资料,才知道这个时候需要修改sourceTree的设置,才能执行强制推送

注意::在这里我建议需要的时候开启强制推送,用完就关闭(开启方法:sourceTree->偏好设置->通用->勾上“允许强制推送”)

image

别以为这样就够了,如果你在设置之后强制推送还是显示失败,显示信息如下:

! [remote rejected] master -> master (pre-receive hook declined)

最后查阅资料才知道git push不上去的原因在于所push的分支权限为protected,只有项目的管理员或者项目的管理员指派的具有相应权限的人才能进行push,而且默认情况下【master】分支是处于被保护状态下的,要进行项目的push,有如下两种方法:

1.将所要push的内容所在的分支的protected权限关闭

(1)进入所在项目的settings,点击进入Protected branches,点击unprotected将master分支的权限改变,即关闭master的protected权限

image

2.新建其它分支,将项目push到新建的分支上,后期再进行merge

(1)新建分支

git branch 分支名
(2)切换分支

git checkout 分支名
(3)进行项目上传

git add .

git commit -m "提交的信息"

git remote add origin 远程仓库地址

git push -u origin 分支名

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Git 是目前最流行的分布式版本控制系统之一。 版本控制指的是,记录每次版本变更的内容和时间等细节,保留各版本之间...
    神齐阅读 5,283评论 0 7
  • Git教程 一、Git简介 1.1. Git的诞生1.2.集中式的vs分布式 二、安装Git 三、创建版本库 四、...
    曹渊说创业阅读 4,498评论 0 2
  • 一、基本概念: 注:对于git的分布式概念及其优点,不重复说明,自己百度或谷歌。本文中涉及到指令前面有$的,在cm...
    大厂offer阅读 5,298评论 0 3
  • 1. 安装 git 不同系统下 git 的安装 Mac上可以在终端上输入: git --version 来查看gi...
    学生陈希阅读 5,609评论 0 4
  • 吾家有一群绒娃娃,他们是我成长到路上的伙伴。 小时候,我总觉得他们好像都有生命似的,我总会影影...
    樱桃小丸子耶阅读 1,365评论 0 5