Git 是一個分布式版本控制軟件,與CVS、Subversion一類的集中式版本控制工具不同,它采用了分布式版本庫的作法,不需要服務(wù)器端軟件,就可以運作版本控制,使得源代碼的發(fā)布和交流極其方便。
git 是一個分布式版本控制軟件,最初由林納斯·托瓦茲創(chuàng)作,于 2005 年以 GPL 發(fā)布。最初目的是為更好地管理 Linux 內(nèi)核開發(fā)而設(shè)計。應(yīng)注意的是,這與 GNU Interactive Tools 有所不同。 git 最初的開發(fā)動力來自于 BitKeeper 和 Monotone。
git 最初的開發(fā)動力來自于 BitKeeper 和 Monotone。git 最初只是作為一個可以被其他前端(比如 Cogito 或 Stgit)包裝的后端而開發(fā)的,但后來 git 內(nèi)核已經(jīng)成熟到可以獨立地用作版本控制。很多著名的軟件都使用 git 進行版本控制,其中包括 Linux 內(nèi)核、X.Org 服務(wù)器和 OLPC 內(nèi)核等項目的開發(fā)流程。
主要功能
git 是用于 Linux 內(nèi)核開發(fā)的版本控制工具。與 CVS、Subversion 一類的集中式版本控制工具不同,它采用了分布式版本庫的作法,不需要服務(wù)器端軟件,就可以運作版本控制,使得源代碼的發(fā)布和交流極其方便。git 的速度很快,這對于諸如 Linux 內(nèi)核這樣的大項目來說自然很重要。git 最為出色的是它的合并追蹤(merge tracing)能力。
實際上內(nèi)核開發(fā)團隊決定開始開發(fā)和使用 git 來作為內(nèi)核開發(fā)的版本控制系統(tǒng)的時候,世界上開源社群的反對聲音不少,最大的理由是 git 太艱澀難懂,從 git 的內(nèi)部工作機制來說,的確是這樣。但是隨著開發(fā)的深入,git 的正常使用都由一些友善的命令來執(zhí)行,使 git 變得非常好用?,F(xiàn)在,越來越多的著名項目采用 git 來管理項目開發(fā),例如:wine、U-boot 等。
作為開源自由原教旨主義項目,git 沒有對版本庫的瀏覽和修改做任何的權(quán)限限制,通過其他工具也可以達到有限的權(quán)限控制,比如:gitosis、CodeBeamer MR。原本 git 的使用范圍只適用于 Linux/Unix 平臺,但在 Windows 平臺下的使用也日漸成熟,這主要歸功于 Cygwin、msysgit 環(huán)境,以及 TortoiseGit 這樣易用的 GUI 工具。git 的源代碼中也已經(jīng)加入了對 Cygwin 與 MinGW 編譯環(huán)境的支持且逐漸完善,為 Windows 用戶帶來福音。
重點內(nèi)容
reset命令有3種方式:
1:git reset –mixed:此為默認方式,不帶任何參數(shù)的git reset,即時這種方式,它回退到某個版本,只保留源碼,回退commit和index信息
2:git reset –soft:回退到某個版本,只回退了commit的信息,不會恢復(fù)到index file一級。如果還要提交,直接commit即可
3:git reset –hard:徹底回退到某個版本,本地的源碼也會變?yōu)樯弦粋€版本的內(nèi)容
git reset只是在本地倉庫中回退版本,而遠程倉庫的版本不會變化。
以刪除master分支為例
#新建一個備份的分支,數(shù)據(jù)無價
git branch old_master
#提交本地當(dāng)前的文件到新建的分支
git push origin old_master:old_master
#本地可以徹底恢復(fù)到你想恢復(fù)到的版本了
git reset --hard 58093e1355716f0f861b64f1c3dfe59242be28f7
#在web端settings頁面,修改默認分支為新建的分支,可以刪除遠程分支了
git push origin :master
#如果出現(xiàn)! [remote rejected] master (deletion of the current branch prohibited),說明沒有設(shè)置遠程的默認分支,沒有權(quán)限刪除,請在web端settings頁面,修改默認分支為新建的分支
#進行到這里,遠程的master分支已經(jīng)刪除成功
#重新提交本地文件到master分支(此時會自動新建master分支)
git push origin master
#再體驗一下刪除分支
git push origin :old_master
到此這篇關(guān)于淺析git 刪除某次指定的提交問題的文章就介紹到這了,更多相關(guān)git 刪除某次指定的提交內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Git忽略提交的3種方法及Git忽略規(guī)則
- Git代碼提交流程及git命令匯總(基礎(chǔ)篇)
- Git 創(chuàng)建分支提交遠程分支詳解
- git提交空目錄的方法
- Git 教程之查看提交歷史詳解