我继续使用SourceTree中的“重置”选项来判断撤消一堆提交。提交被推送到我用来克隆的Bare:master。现在,重置存储库显示出来自Bare:master的11次拉动。
一点历史:我有源代码,在更新时,我发布到Code.Publish。在此之前,我创建了Bare:master,以便我可以拥有一个干净的存储库。每次更新源代码时,我都会发布到Code.Publish,然后发布>提交>推向Bare:主人。我克隆Bare:master到三个独立的存储库(Code.Web1,Code.Web2,Code.Web3)。当对Code.Publish进行源代码更改时,我将这些更改提取到Code.Web1等中。
我现在要撤消从Code.Publish对Bare:master进行的合并/推送。
我从阅读THIS收集到,我现在可以gitk --date-order
来确定我想要恢复的提交的SHA。然后我会选择最后一次BAD提交,以便保持父提交是好的。我只想确认这是正确的。
另外,对于Code.Web1等,正如我所提到的,我从Bare:master中提取了更改,并将它们合并到了存储库中。我应该只是简单地使用Code.Publish做同样的事情,因为我应该“反向”提交到最后一个好的吗?
我所做的改变是垃圾,所以我并不担心我想要改变这些改变。而我只是想确保我这样做是可以的。上面用这个链接绊倒我的一件事是作者评论说将来合并可能会有问题。
基本上,如果我这样做,然后稍后对Source进行更改然后发布到Code.Publish,我会遇到严重的问题吗?
没有其他人在使用此代码,因此我并不担心其他人的代码会被搞砸。
提前谢谢。
答案 0 :(得分:0)
通过一些额外的研究,我得到了正确的答案:
template <class C, typename Tag>
struct GetConst
{
static constexpr int value = /* some magic */
};
GetConst<Compound, struct T1>::value == 111
GetConst<Compound, struct T2>::value == 222
,其中git update-ref HEAD [SHA ID]
是我想要回复的提交的ID。
然后我做了[SHA ID]
和git gc
以摆脱旧的引用。