是否有可能将git重置为新提交?

时间:2016-03-14 21:44:02

标签: git

我想将分支重置为某个提交,但仍保留其历史记录。例如,给定这个分支:

  

A - > B - > ç

我想创建一个新的提交A*,使A的分支和A*的分支完全相同,历史记录如下:

  

A - > B - > C - > A *

这可以在git中使用吗?

2 个答案:

答案 0 :(得分:4)

我可以考虑使用<nav class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="Default.aspx">Gestione Azienda</a> </div> <div class="collapse navbar-collapse"> <ul class="nav navbar-nav"> <!--<li class="active"><a href="#">Link</a></li>--> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Elenco commesse<b class="caret"></b></a> <ul class="dropdown-menu"> <li><a runat="server" href="~/elenco.aspx?societa=1">1</a></li> <li><a runat="server" href="~/elenco.aspx?societa=2">2</a></li> <li><a runat="server" href="~/elenco.aspx?societa=3">3</a></li> </ul> </li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Gestisci commessa<b class="caret"></b></a> <ul class="dropdown-menu"> <li><a runat="server" href="~/1.aspx/#tab-1">1</a></li> <li><a runat="server" href="~/2.aspx/#tab-2">2</a></li> <li><a runat="server" href="~/3.aspx/#tab-3">3</a></li> </ul> </li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Impostazioni<b class="caret"></b></a> <ul class="dropdown-menu"> <li><a runat="server" href="~/impostazioni.aspx">Impostazioni Generali</a></li> <li><a runat="server" href="~/GestioneUtenti.aspx">Gestione utenti</a></li> </ul> </li> <li><a id="A1" runat="server" href="~/ProgLavori.aspx" target="_blank">Programmazione lavori</a></li> <li><a runat="server" href="http://" target="_blank">Posta</a></li> <li><a id="menu_logout" runat="server" onserverclick="logout">Logout</a></li> <li><a id="menu_login" runat="server" href="~/Default.aspx">Login</a></li> </ul> </div> </div> </nav> 的两种方法。

1 - 恢复,然后压缩

还原最后两次提交。这会创建两个新提交。我在这里使用git revert标志,因此它不会提示您为每个恢复提交一条提交消息。

--no-edit

然后,既然你想要一个提交而不是两个提交,那么做一个交互式的rebase来压缩刚刚创建的两个revert提交。

git revert --no-edit HEAD^^..HEAD

2 - 使用git rebase -i HEAD^^ 还原,然后提交

使用--no-commit标志,--no-commit不提交任何内容,只是对工作树和索引进行更改。

git revert

然后你可以提交更改。

git revert --no-commit HEAD^^..HEAD

答案 1 :(得分:3)

使用git revert。阅读一个不错的tutorial by Atlassian