使用TortoiseGit(我试图避免命令行使用)如何删除从某个提交中获得的所有提交,并"回到过去"(示例用法:继续做某事,想通知我不喜欢它在哪里我要去,并决定"无视"所有人之间的"回归".
总之,我希望"返回"5次提交,然后删除它们.
Mar*_*urn 27
转到TortoiseGit - >显示日志.选择您要保留的最新提交,上面的所有内容都将被删除.然后右键单击它并选择"重置"主"到此"并选择硬.但要小心,因为一旦你这样做,它之后的所有提交将永远丢失,除非它们被存储在某个地方的另一个分支中.
我从来没有使用过 Tortoise 任何东西(除非你算上电子乐组),但我会给你这些信息,以防你找不到使用 GUI 的方法,或者你最终决定使用 CLI。
正如 @Tuxified 提到的,您可以使用git reset --hard <COMMIT>. 您需要指定一个提交,这可以通过任何一种令人生畏的可能方式来完成;最常见的形式如HEAD~4,指定当前分支头之前 4 个提交,以及deadbeef42,指定 SHA1 以 0xdeadbeef42 开头的提交。如果您运行的是 Linux 或 OSX,您可以通过“指定修订版本”下的 获取有关提交说明符的完整详细信息man git-rev-parse。
您还可以重命名当前分支 ( git branch -m new_branch_name),然后创建一个新分支,其头位于您要恢复到的位置。优点是,如果您最终想要使用您在那里所做的全部或部分内容,您仍然可以轻松访问它;如果你输错了提交,你就可以避免一个大灾难时刻。另外 git 分支是超轻量级的,所以唯一真正的缺点是会列出另一个分支。要创建新的主分支,您将使用git branch master <COMMIT>,然后检查它。因此,这里的最终效果与第一个选项相同,只是您仍然将旧的更改保存在分支中new_branch_name。master如果您愿意,您甚至可以在新提交之后将这些更改合并回来。
请注意,这两种技术都被视为“重写历史记录”,如果您与其他人共享您的存储库,则会导致问题。如果您很聪明并推送到云城或另一台电脑中的备份存储库,则必须先修复该端的问题,然后才能再次推送。
这可能比您现在需要的信息多得多,但如果您最终经常使用 git,您可能会在某个时候想要学习这些东西。抱歉我不知道如何使用Tortoise...
| 归档时间: |
|
| 查看次数: |
13788 次 |
| 最近记录: |