【问题标题】:How to delete all commits and replace the initial commit in a Git repository?如何删除所有提交并替换 Git 存储库中的初始提交?
【发布时间】:2018-02-10 21:28:44
【问题描述】:

我们正在将一些存储库从 GitHub 移动到 BitBucket,我们不想删除 GitHub 中的存储库,因为我们的问题跟踪器中仍然存在一些问题。我们正在等待this bug 得到解决,以便我们可以正确导出问题。所以现在我们只想删除存储库的所有历史记录并插入一个非常小的 README.md 文件作为初始提交。

【问题讨论】:

    标签: git github migration bitbucket git-commit


    【解决方案1】:
    1. 将工作目录复制到新目录。

    2. 在该目录中执行git init; git add.; git commit -m 'First Commit Message'

    3. 如果您想将此新存储库发布到您的远程服务器之一,只需使用git remote add remote-name remote-URL 将服务器添加为远程服务器,然后使用git push remote-name 将内容上传到您刚刚添加到新存储库并更新的远程服务器远程使用这个新仓库的内容。

      如果遥控器已经在master 分支上有东西,你可能需要-force 推送:git push -f remote-name

    【讨论】:

      【解决方案2】:

      使用这个:

      $ git reset --hard `git rev-list --max-parents=0 HEAD`
      $ git rm -r '*'
      

      然后是以下之一:

      $ git commit --amend --allow-empty
      

      或者,如果您想使用 README 文件,请使用此文件,但在此之前,请将 vim 替换为您喜欢的文本/代码编辑器,而不是 README.md,使用您想要的初始提交单个文件的名称:

      $ vim README.md
      $ git add README.md
      $ git commit --amend
      

      我在 thisthisthis StackOverflow 答案的帮助下写了这个答案。

      【讨论】:

      • 你也可以初始化一个新的仓库,添加单个文件,设置相同的遥控器并强制推送。
      • @jonrsharpe 我试过你的方法,效果很好。谢谢。
      猜你喜欢
      • 2021-12-30
      • 1970-01-01
      • 2021-05-24
      • 2011-01-01
      • 2010-10-09
      • 2020-07-16
      • 2019-10-10
      • 1970-01-01
      相关资源
      最近更新 更多