簡體   English   中英

如何清除git歷史記錄中的所有先前提交?

[英]How can I clear all previous commits from git history?

我最近開始了一個新項目,並且在開始時做了很多實驗。 現在有一些新成員加入,我有一個想法,就是將git的歷史記錄抹掉,因為它們似乎毫無意義,瀏覽存儲庫的每個人都會感到困惑。

可能的解決方案是從頭開始建立新的存儲庫,但我希望重寫歷史記錄。

我需要的只是將master上的HEAD提交設置為第一個,並且僅在回購中提交。

如果要使用git rebase ,則可能對Git壁球整個分支-一線壁球命令感興趣

如果您有很多提交的歷史記錄,則git rebease可能需要很長時間。 在這種情況下,您可以進行淺表克隆

git clone --depth 1 <REPO_URL>

比做

git commit --amend

為了創建一個包含最新更改的獨立提交,然后執行強制推送

git push -f

將所有不需要的提交壓入本地存儲庫中,然后使用--force選項將它們推送到遠程存儲庫中。

如果您真的確定自己在做什么,則可以在第一次提交時進行交互式重新設置:

git rebase --interactive --root

並修正每個提交。 但是至少我建議在結帳之前先結帳另一個分支:

git checkout -b rebase

您可以使用創建新的根分支,而無需任何父提交

git checkout --orphan new-master

並使用以下命令將存儲庫狀態提交到該新分支

git add .
git commit

並使用將其推送到服務器

git push --force origin new-master:master

這將使舊歷史記錄無法在服務器上訪問,因此請謹慎使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM