git的使用

前言:

一、git是什么仪或?

事情是這樣的幼东,自2002年開始臂容,林納斯·托瓦茲決定使用BitKeeper作為L(zhǎng)inux內(nèi)核主要的版本控制系統(tǒng)用以維護(hù)代碼。到了2005年根蟹,Linux內(nèi)核開發(fā)團(tuán)隊(duì)的安德魯·垂鳩寫了一個(gè)簡(jiǎn)單程序脓杉,可以連接BitKeeper的存儲(chǔ)庫(kù)。這時(shí)BitKeeper著作權(quán)擁有者拉里·麥沃伊不高興了简逮,認(rèn)為這事對(duì)BitKeeper內(nèi)部使用的協(xié)議進(jìn)行逆向工程球散,于是決定收回Linux內(nèi)核開發(fā)團(tuán)隊(duì)無償使用BitKeeper的許可。這點(diǎn)小事肯定難不倒大神林納斯散庶,僅僅10天之后蕉堰,第一個(gè)git版本就寫出來了”辏看到這里大家應(yīng)該都知道git是一個(gè)版本控制管理系統(tǒng)了屋讶。對(duì),Git就是一款開源的分布式版本控制系統(tǒng)(Distributed Version Control System)须教。

二皿渗、版本控制系統(tǒng)

上栗中因?yàn)樗麤]有使用版本控制工具。如果使用Git做版本控制的話轻腺,只需在鍵盤上敲入幾行命令就能找回方案A的代碼乐疆,阿禿自然不用再通宵了。版本控制是指對(duì)軟件開發(fā)過程中各種程序代碼贬养、配置文件及說明文檔等文件變更的管理挤土,是軟件配置管理的核心思想之一。運(yùn)用版本控制系統(tǒng)煤蚌,我們可以對(duì)代碼進(jìn)行版本管理耕挨,可以隨時(shí)查看之前版本的內(nèi)容,隨時(shí)回溯到之前版本中尉桩。團(tuán)隊(duì)合作的時(shí)候也可以自動(dòng)合并代碼筒占,而不需要用一個(gè)共享文件,或者是進(jìn)行定期的備份蜘犁。

三翰苫、集中式和分布式版本控制系統(tǒng)

版本控制系統(tǒng)目前來講有兩大控制系統(tǒng):
集中式:svn
分布式:git
要理解SVN和Git的使用差別為什么那么大,最直接的辦法是搞清楚集中式和分布式版本控制系統(tǒng)之間的差別。集中式版本控制系統(tǒng)有單一的集中管理服務(wù)器奏窑,保存所有文件的修訂版本导披,所有的文件“Nǎ客戶端的電腦并不會(huì)保存歷史版本撩匕,所以如果想查看歷史版本,必須聯(lián)網(wǎng)才能查看墨叛,并且如果集中管理的服務(wù)器出現(xiàn)故障止毕,可能導(dǎo)致歷史版本丟失,最多只能從本地的文件恢復(fù)到最后的版本漠趁。另外網(wǎng)速直接影響提交和下載文件的速度扁凛,很多時(shí)候很影響使用體驗(yàn)。
分布式版本控制系統(tǒng)沒有集中管理的服務(wù)器闯传,每個(gè)人的電腦都有一個(gè)完整的版本庫(kù)谨朝,我們可以在本地進(jìn)行修改提交,查看歷史版本甥绿。這里很多人有個(gè)疑問字币,我們平時(shí)工作中,經(jīng)常把代碼推到“遠(yuǎn)程倉(cāng)庫(kù)”妹窖,這個(gè)“遠(yuǎn)程倉(cāng)庫(kù)”不就是集中式版本控制系統(tǒng)里面的集中管理服務(wù)器嘛纬朝?其實(shí),這只是分布式版本控制系統(tǒng)里面的一個(gè)節(jié)點(diǎn)而已骄呼,這和你自己的電腦還有你同事阿禿的電腦一樣共苛,都是可以理解為其中一個(gè)節(jié)點(diǎn)。為了協(xié)作方便蜓萄,我們都在這個(gè)“遠(yuǎn)程倉(cāng)庫(kù)”上面交換“修改”隅茎,所以容易給大家造成中央服務(wù)器的錯(cuò)覺。

四嫉沽、基本概念

工作拷貝(工作目錄):用于存放產(chǎn)品開發(fā)數(shù)據(jù)本地工作目錄辟犀。
暫存區(qū) (Index):用于存放待提交數(shù)據(jù)的緩存區(qū)。
本地倉(cāng)庫(kù):遠(yuǎn)端庫(kù)的一個(gè)完整的拷貝绸硕,包括所有文件的修改記錄堂竟,分支等。
遠(yuǎn)程倉(cāng)庫(kù):本地倉(cāng)庫(kù)clone來源玻佩。
快照(snapshot):版本庫(kù)某個(gè)時(shí)間點(diǎn)所有文件集合出嘹。
全球版本號(hào)(commitID):Git庫(kù)的版本號(hào)是通過SHA-1算法根據(jù)庫(kù)中的所有內(nèi)容計(jì)算出一個(gè)40位的哈希值,這個(gè)哈希值是全球唯一的咬崔,基本只要前六位就可以唯一標(biāo)識(shí)了税稼。

五烦秩、理解修改文件在Git的流動(dòng)

我們所有修改都是在工作目錄進(jìn)行的,修改完以后需要先添加到暫存區(qū)郎仆,然后再提交到本地倉(cāng)庫(kù)只祠。提交完以后會(huì)產(chǎn)生commitID,標(biāo)識(shí)當(dāng)次提交扰肌。在之后的操作中抛寝,可以通過commitID回滾到某次提交狀態(tài)。最后曙旭,我們還需要把本地的倉(cāng)庫(kù)的提交記錄推送到遠(yuǎn)程倉(cāng)庫(kù)墩剖。

六、基本操作

git config --global user.name "herion"配置全局用戶名
執(zhí)行命令夷狰,如果沒有任何反應(yīng),代表命令執(zhí)行成功
git config --global user.email "herion@163.com配置用戶郵箱
執(zhí)行命令郊霎,如果沒有任何反應(yīng)沼头,代表命令執(zhí)行成功
git config --list查看配置的用戶信息
git config user.name "herion"配置本項(xiàng)目的用戶名
git config user.eamil "herion@163.com配置本項(xiàng)目的郵箱
在當(dāng)前項(xiàng)目下面查看的配置是全局配置+當(dāng)前項(xiàng)目的配置, 使用的時(shí)候會(huì)優(yōu)先使用當(dāng)前項(xiàng)目的配置
git init git初始化本地倉(cāng)庫(kù)
git clone 倉(cāng)庫(kù)地址克隆遠(yuǎn)程倉(cāng)庫(kù)到本地,即“復(fù)制”遠(yuǎn)程倉(cāng)庫(kù)到本地
git add 文件名將單個(gè)文件添加到暫存區(qū)
git add . 將所有的文件添加到暫存區(qū)
git commit -m ‘提交信息' 提交更改到當(dāng)前分支书劝,后面的是提交日志
git status 查看當(dāng)前git的狀態(tài)进倍,例如文件是否更改
untracked files顯示未跟蹤的文件,即未加入版本控制的文件
git branch

git branch 分支名稱

git checkout 分支名稱

git log

git pull <遠(yuǎn)程主機(jī)名> <遠(yuǎn)程分支名>:<本地分支名>

git push <遠(yuǎn)程主機(jī)名> <本地分支名>:<遠(yuǎn)程分支名>

將分支合并到當(dāng)前分支
git merge <分支名稱>

git branch -d <分支名稱>

git push <遠(yuǎn)程主機(jī)名> --delete <BranchName>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末购对,一起剝皮案震驚了整個(gè)濱河市猾昆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌镀钓,老刑警劉巖柄沮,帶你破解...
    沈念sama閱讀 212,542評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钾恢,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡贴见,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門躲株,熙熙樓的掌柜王于貴愁眉苦臉地迎上來片部,“玉大人,你說我怎么就攤上這事霜定〉涤疲” “怎么了?”我有些...
    開封第一講書人閱讀 158,021評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵望浩,是天一觀的道長(zhǎng)辖所。 經(jīng)常有香客問我,道長(zhǎng)曾雕,這世上最難降的妖魔是什么奴烙? 我笑而不...
    開封第一講書人閱讀 56,682評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上切诀,老公的妹妹穿的比我還像新娘揩环。我一直安慰自己,他們只是感情好幅虑,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評(píng)論 6 386
  • 文/花漫 我一把揭開白布丰滑。 她就那樣靜靜地躺著,像睡著了一般倒庵。 火紅的嫁衣襯著肌膚如雪褒墨。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,985評(píng)論 1 291
  • 那天擎宝,我揣著相機(jī)與錄音郁妈,去河邊找鬼。 笑死绍申,一個(gè)胖子當(dāng)著我的面吹牛噩咪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播极阅,決...
    沈念sama閱讀 39,107評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼胃碾,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了筋搏?” 一聲冷哼從身側(cè)響起仆百,我...
    開封第一講書人閱讀 37,845評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎奔脐,沒想到半個(gè)月后俄周,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,299評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡髓迎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評(píng)論 2 327
  • 正文 我和宋清朗相戀三年栈源,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片竖般。...
    茶點(diǎn)故事閱讀 38,747評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡甚垦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出涣雕,到底是詐尸還是另有隱情艰亮,我是刑警寧澤,帶...
    沈念sama閱讀 34,441評(píng)論 4 333
  • 正文 年R本政府宣布挣郭,位于F島的核電站迄埃,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏兑障。R本人自食惡果不足惜侄非,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評(píng)論 3 317
  • 文/蒙蒙 一蕉汪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧逞怨,春花似錦者疤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至除秀,卻和暖如春糯累,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背册踩。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工泳姐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人暂吉。 一個(gè)月前我還...
    沈念sama閱讀 46,545評(píng)論 2 362
  • 正文 我出身青樓仗岸,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親借笙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評(píng)論 2 350

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