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