我对Git很陌生,我只知道如何在SourceTree中使用它(一点点)
我的分支图是:
o Commit E is origin/test and (local) master
|
| o Commit D is origin/master
| |
| o Commit C
| |
| o Commit B
|/
o Commit A
|
现在,我想:
但我在SourceTree中找不到正确的按钮和命令。
发布于 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的新手。
发布于 2015-02-16 10:51:39
不知道如何用SourceTree来做这件事。正如其他人所说:接受命令行:
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
不需要纽扣。
发布于 2017-06-30 18:16:38
不确定是否解决了这一问题,但遇到了类似的问题,并使用源代码树解决了以下问题:
你可以用“反向提交”从最新提交开始的每个提交的选项(当您右键单击该提交)。不要一个一个地对C和B使用反向提交,在这3次反转之后,您在原始/主分支上的代码将与提交A相同。现在将更改推到远程回购(分支起源/主)。将源/测试合并到源/主。现在原始/主在提交E。按这个,当你在原始/主分支时,你可以删除原始/测试分支。
P.S.:唯一的事情是,您将看到在分支上提交还原提交,但是代码将是干净的。
https://stackoverflow.com/questions/28539054
复制相似问题