這個操作會將庫清空,一般來說在建庫開始的時候操作。
適用場景:
git init初始化版本庫之后,提交第一個點之后發現這個點出問題了,但是此時內心如果有潔癖的話,
你會覺得不完美,很想把這個點干掉重來。
如上圖,此時你這個點已經推到遠程master上面了, 因為是第一個點,所以通過普通的刪除分支的命令無法達到刪除的目的。但是可以“曲線救國”,通過以下方法可以實現:
(這個操作會清空版本庫, 所以請慎重操作!!!)
1,首先需要確保你擁有master權限
2,要有一個空的版本庫,或者第一個點為不包含代碼文件的版本庫。如下所示:
這個版本庫的第一個點我只新建了一個隱藏文件 .gitkeep文件。
3,在待重建的版本庫上通過以下的命令添加上圖②對應的版本庫:
git remote add
origin1 git@scm-gitlab:test/test/test.git
(因為①中遠程版本庫名字是origin,所以這里需要add另外一個庫名字)
git fetch origin1 獲取同步最新狀態
如果master分支是被保護的,需要設置成不保護。
git reset --hard origin1/master 跳轉到新add進來的庫的master分支
git push orgin master -f 強制將origin1的點推送到origin的master分支上,
這樣origin的master就發生了改變
然后把添加進來的庫刪掉
git remote rm origin1
這樣一來就把原來的點刪掉了,相當與重建了版本庫
你們可以發現origin1的第一個是什么文件都沒有的,其實我只新建了一個隱藏文件.gitkeep,這樣就可以基於這個初始點進行開發,后續如果想刪掉重建就沒那么麻煩了,直接跳到git init的那個點,然后強推就行了。這個操作有風險,請想好再做,避免帶來不必要的損失。
另外,這也告訴我們,在新建版本庫的時候,第一個點盡量不要添加任何代碼相關的文件,可以添加.gitkeep文件作為初始點,這樣操作相對規范點