在Git中,如何创建最早提交之前的提交?

时间:2011-06-16 20:51:29

标签: git

我有一个Git存储库,其最早的提交是版本6.8.2(标记为“v6.8.2”)。我有包的版本6.8.1,我想提交到存储库作为最早提交的父提交。这可能吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:4)

您可以在所需的最早提交之上重新定义当前分支(v6.8.1)。不过,它会改写你的历史,但这是有可能的。

编辑添加更多

假设您的代码位于分支master

清除现有代码并创建新分支。您的旧代码不会丢失 - 它仍然存在于主分支上。

git symbolic-ref HEAD refs/heads/newbase
rm .git/index
git clean -dxf

现在你在分支newbase这是一个空目录。将您想要成为新基础的文件添加到此处。

<add the files to the directory>
git add .
git commit -a -m "New base commit v6.8.1"

新的你有两个分支master,其原始代码和newbase只有你的新基础。

现在签出master分支并在newbase分支

上重新绑定它
git checkout master
git rebase newbase

然后您需要做的就是修复冲突,并且您有一个新的master分支,它从代码的早期状态开始。

虽然这有点乱。如果您只想将代码添加到存储库,只需执行第一位,即创建新分支。标记它以便你知道它是什么,没有必要将master分支重新绑定到它上面,因为如果你到达master的基础,并希望进一步回到过去 - 你可以看到什么在另一个分支。