徹底清除git所有歷史提交記錄使其為“新”庫(kù)

文章目錄

背景
清除 git 所有歷史提交記錄方案
清除 git 所有記錄的 bat 批處理腳本

背景

以前開發(fā)中未制定赚哗、遵循 git 管理項(xiàng)目標(biāo)準(zhǔn)辑奈,隨意(不規(guī)范)的提交 嚴(yán)重“污染了”提交歷史,使開發(fā)主線 “臟亂”;
基于以前的倉(cāng)庫(kù)重新開發(fā)残揉,這樣可保留以前的配置等文件,但是需要?jiǎng)h除全部的歷史記錄、tag符喝、分支等;
由于自己或其他方面特殊需求,需要保留倉(cāng)庫(kù)的部分屬性(創(chuàng)建時(shí)間甜孤,說明协饲,主頁(yè)等)畏腕,但需要清除歷史記錄,使其為“新庫(kù)”茉稠。
基于以上3方面的需求描馅,需要提供一個(gè) 在不刪除原倉(cāng)庫(kù)的前提下,清除原倉(cāng)庫(kù)的所有歷史提交記錄(包含:分支而线、tag) 解決方案铭污。

清除 git 所有歷史提交記錄方案

1.創(chuàng)建新分支

語(yǔ)法:git checkout --orphan <new_branch>
例句:git checkout --orphan latest_branch

使用 --orphan 選項(xiàng),可創(chuàng)建1個(gè)"清潔"分支(無任何的提交歷史膀篮,但是當(dāng)前分支的內(nèi)容一應(yīng)俱全况凉。但嚴(yán)格意義上說,這樣創(chuàng)建的分支還不是一個(gè)真正的分支各拷,因?yàn)镠EAD指向的引用中沒有commit值刁绒,只有在進(jìn)行一次提交后,它才算得上真正的分支烤黍。

注意:

新的分支名可以隨意命名知市,但不能和以前的分支名沖突。這兒特別強(qiáng)調(diào)是因?yàn)楹芏嗳肆?xí)慣默認(rèn)將分支名創(chuàng)建為 master.
本文以 latest_branch 作為新分支名速蕊,這個(gè)名稱沒有任何特殊含義嫂丙,你可自定義,只要保證和以后的使用一致即可规哲。

2.添加所有文件

git add .
# 或 git add -A

3.commit代碼

git commit -m "自定義提交說明"

4.刪除原來的主分支(master)

git branch -D master

一般倉(cāng)庫(kù)默認(rèn)的主分支為 master 分支跟啤,如果原來的主分支不是 master, 用實(shí)際的主分支名代替。

5.把當(dāng)前分支重命名為master

 git branch -m master

6.最后把代碼推送到遠(yuǎn)程倉(cāng)庫(kù)

注意: 有些倉(cāng)庫(kù)有 master 分支保護(hù)唉锌,不允許強(qiáng)制 push隅肥,需要在遠(yuǎn)程倉(cāng)庫(kù)項(xiàng)目里暫時(shí)把項(xiàng)目保護(hù)關(guān)掉才能推送。

git push -f origin master

注意: 推送前 需要使用 git remote -v 查看關(guān)聯(lián)的遠(yuǎn)程倉(cāng)庫(kù)的信息(主要是遠(yuǎn)程庫(kù)的別名)袄简。雖然遠(yuǎn)程庫(kù)的別名默認(rèn)是 origin ,但你可能設(shè)置過其他的別名(而非 origin).

推送前腥放,有的情況需要設(shè)置:git branch --set-upstream-to=origin/master master

7.從遠(yuǎn)程庫(kù)拉取更新代碼(測(cè)試)

git pull

如果別人pull不下來可以敲

git pull -r

8.確定清除歷史記錄的結(jié)果

# 1.查看提交日志
git log --pretty=oneline

# 2.查看分支信息
# 列出所有本地分支
$ git branch
# 列出所有遠(yuǎn)程分支
$ git branch -r
# 列出所有本地分支和遠(yuǎn)程分支
# $ git branch -a

# 3.查看 tag 信息
# 查看本地標(biāo)簽
git tag
# 查看遠(yuǎn)程標(biāo)簽
git ls-remote --tags

可登錄遠(yuǎn)程倉(cāng)庫(kù)再次確認(rèn)绿语。

清除 git 所有記錄的 bat 批處理腳本

這兒將上面的步驟封裝為 bat 批處腳本(針對(duì)windows)秃症,雙擊即可運(yùn)行。
文件名:fetch_push_clear_all_history.bat
將文本內(nèi)容保存為 UTF-8 格式吕粹,文件最好放在 git 倉(cāng)庫(kù)外种柑。如果放在 git 倉(cāng)庫(kù)內(nèi),需要將此文件在 .gitignore中過濾匹耕。

chcp 65001
@echo off
set /p gd=輸入要清除歷史提交信息的倉(cāng)庫(kù)目錄的絕對(duì)路徑:
echo 待處理的路徑:%gd%
set /p gm=輸入提交說明:
pushd
cd /d %gd%
git checkout --orphan latest_branch
git add -A
git commit -am "%gm%"
git branch -D master
git branch -m master
git push -f origin master
git pull
echo "已清除全部的歷史記錄!"
echo "查看新倉(cāng)庫(kù)信息:"
git log --pretty=oneline
git branch -a
git tag
git ls-remote --tags
pause
popd
exit

抄襲此篇文章

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末聚请,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子泌神,更是在濱河造成了極大的恐慌良漱,老刑警劉巖舞虱,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異母市,居然都是意外死亡矾兜,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門患久,熙熙樓的掌柜王于貴愁眉苦臉地迎上來椅寺,“玉大人,你說我怎么就攤上這事蒋失》蹬粒” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵篙挽,是天一觀的道長(zhǎng)荆萤。 經(jīng)常有香客問我,道長(zhǎng)铣卡,這世上最難降的妖魔是什么链韭? 我笑而不...
    開封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮煮落,結(jié)果婚禮上敞峭,老公的妹妹穿的比我還像新娘。我一直安慰自己蝉仇,他們只是感情好旋讹,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著轿衔,像睡著了一般沉迹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上呀枢,一...
    開封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天胚股,我揣著相機(jī)與錄音,去河邊找鬼裙秋。 笑死,一個(gè)胖子當(dāng)著我的面吹牛缨伊,可吹牛的內(nèi)容都是我干的摘刑。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼刻坊,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼枷恕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起谭胚,我...
    開封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤徐块,失蹤者是張志新(化名)和其女友劉穎未玻,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胡控,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扳剿,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了昼激。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片庇绽。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖橙困,靈堂內(nèi)的尸體忽然破棺而出瞧掺,到底是詐尸還是另有隱情,我是刑警寧澤凡傅,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布辟狈,位于F島的核電站,受9級(jí)特大地震影響夏跷,放射性物質(zhì)發(fā)生泄漏哼转。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一拓春、第九天 我趴在偏房一處隱蔽的房頂上張望释簿。 院中可真熱鬧,春花似錦硼莽、人聲如沸庶溶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)财著。三九已至咸作,卻和暖如春智末,著一層夾襖步出監(jiān)牢的瞬間采转,已是汗流浹背璧亮。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工乖订, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留终息,地道東北人夺巩。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像周崭,于是被迫代替她去往敵國(guó)和親柳譬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容