首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用SourceTree删除提交

用SourceTree删除提交
EN

Stack Overflow用户
提问于 2015-02-16 10:15:18
回答 3查看 12.7K关注 0票数 1

我对Git很陌生,我只知道如何在SourceTree中使用它(一点点)

我的分支图是:

代码语言:javascript
运行
复制
 o   Commit E is origin/test and (local) master
 |
 | o Commit D is origin/master
 | |
 | o Commit C
 | |
 | o Commit B
 |/
 o   Commit A
 |

现在,我想:

  • 删除提交的D、C和B
  • 移动原/母版以提交E
  • 删除源/测试分支标记

但我在SourceTree中找不到正确的按钮和命令。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-02-16 10:29:33

您想要做的是使用origin将(本地)主分支推到--force,以表示您想重写历史。你知道你的改变会导致原始/主分支松散历史记录(3提交B,C,D),你不在乎。

我不太了解源代码,无法告诉您这样的操作是否可行,GUI一直在发展,它们每个月都会添加新的功能来支持更多的操作,但是您总是可以从源代码树打开git控制台(至少在1.3之前有一个图标可以这样做)并输入:

git push --force origin master

这将将您的(本地)主分支推到它的跟踪分支(应该是源/主分支)。

注:我不知道您是如何配置SourceTree的,但是如果您依赖https与服务器通信,则可能需要输入登录/密码。

编辑1:

如果还想删除源/测试,可以通过在sourceTree中正确裁剪分支(在remotes下)并选择delete:

https://answers.atlassian.com/questions/65053/how-do-you-remove-branches-from-source-tree

编辑2:

显然,push --force的GUI选项曾经/将添加到版本1.7中

作为一个更普遍的答案: Stackoverflow不是谷歌。SourceTree是一款由亚特兰西安支持的免费商业软件。他们支持你。他们有一个ok‘’ish手册和一个足够的用户基础,不足以成为第一个想知道如何做X的新手。

票数 3
EN

Stack Overflow用户

发布于 2015-02-16 10:51:39

不知道如何用SourceTree来做这件事。正如其他人所说:接受命令行:

代码语言:javascript
运行
复制
git checkout master               # master points at COMMIT E
git push -f origin master:master  # forced push to origin so that masters are equal
git push origin :test             # delete origin/test

不需要纽扣。

票数 0
EN

Stack Overflow用户

发布于 2017-06-30 18:16:38

不确定是否解决了这一问题,但遇到了类似的问题,并使用源代码树解决了以下问题:

你可以用“反向提交”从最新提交开始的每个提交的选项(当您右键单击该提交)。不要一个一个地对C和B使用反向提交,在这3次反转之后,您在原始/主分支上的代码将与提交A相同。现在将更改推到远程回购(分支起源/主)。将源/测试合并到源/主。现在原始/主在提交E。按这个,当你在原始/主分支时,你可以删除原始/测试分支。

P.S.:唯一的事情是,您将看到在分支上提交还原提交,但是代码将是干净的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28539054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档