版本控制軟件之Git

直接來兩張git常用命令指南
圖片發(fā)自簡(jiǎn)書App
WechatIMG8.png

一宿稀、什么是版本控制

版本控制(Revision control)是一種在開發(fā)的過程中用于管理我們對(duì)文件卖漫、目錄或工程等內(nèi)容的修改歷史,方便查看更改歷史記錄究孕,備份以便恢復(fù)以前的版本的軟件工程技術(shù)直砂。
  • 實(shí)現(xiàn)跨區(qū)域多人協(xié)同開發(fā)
  • 追蹤和記載一個(gè)或者多個(gè)文件的歷史記錄
  • 組織和保護(hù)你的源代碼和文檔
  • 統(tǒng)計(jì)工作量
  • 并行開發(fā)吠谢、提高開發(fā)效率
  • 跟蹤記錄整個(gè)軟件的開發(fā)過程
  • 減輕開發(fā)人員的負(fù)擔(dān)晦嵌,節(jié)省時(shí)間亮航,同時(shí)降低人為錯(cuò)誤
  • 簡(jiǎn)單說就是用于管理多人協(xié)同開發(fā)項(xiàng)目的技術(shù)荸实。

二、常見的版本控制器

主流的版本控制器有如下這些:(現(xiàn)在影響力最大且使用最廣泛的是Git與SVN)
  • Git
  • SVN(Subversion)
  • CVS(Concurrent Versions System)
  • VSS(Micorosoft Visual SourceSafe)
  • TFS(Team Foundation Server)

三缴淋、版本控制分類

  • 本地版本控制
    -- 記錄文件每次的更新准给,可以對(duì)每個(gè)版本做一個(gè)快照,或是記錄補(bǔ)丁文件重抖,適合個(gè)人用露氮,如RCS。
  • 集中版本控制
    -- 所有的版本數(shù)據(jù)都保存在服務(wù)器上钟沛,協(xié)同開發(fā)者從服務(wù)器上同步更新或上傳自己的修改所有的版本數(shù)據(jù)都存在服務(wù)器上畔规,用戶的本地只有自己以前所同步的版本,如果不連網(wǎng)的話恨统,用戶就看不到歷史版本叁扫,也無法切換版本驗(yàn)證問題,或在不同分支工作畜埋。而且莫绣,所有數(shù)據(jù)都保存在單一的服務(wù)器上,有很大的風(fēng)險(xiǎn)這個(gè)服務(wù)器會(huì)損壞悠鞍,這樣就會(huì)丟失所有的數(shù)據(jù)对室,當(dāng)然可以定期備份。代表產(chǎn)品:SVN咖祭、CVS软驰、VSS
  • 分布式版本控制
    -- 所有版本信息倉(cāng)庫(kù)全部同步到本地的每個(gè)用戶,這樣就可以在本地查看所有版本歷史心肪,可以離線在本地提交锭亏,只需在連網(wǎng)時(shí)push到相應(yīng)的服務(wù)器或其他用戶那里。由于每個(gè)用戶那里保存的都是所有的版本數(shù)據(jù)硬鞍,只要有一個(gè)用戶的設(shè)備沒有問題就可以恢復(fù)所有的數(shù)據(jù)慧瘤,但這增加了本地存儲(chǔ)空間的占用。

四固该、Git與SVN最主要區(qū)別

  • SVN是集中式版本控制系統(tǒng)锅减,版本庫(kù)是集中放在中央服務(wù)器的,而工作的時(shí)候伐坏,用的都是自己的電腦怔匣,所以首先要從中央服務(wù)器得到最新的版本,然后工作,完成工作后每瞒,需要把自己做完的活推送到中央服務(wù)器金闽。集中式版本控制系統(tǒng)是必須聯(lián)網(wǎng)才能工作,對(duì)網(wǎng)絡(luò)帶寬要求較高剿骨。
  • Git是分布式版本控制系統(tǒng)代芜,沒有中央服務(wù)器,每個(gè)人的電腦就是一個(gè)完整的版本庫(kù)浓利,工作的時(shí)候不需要聯(lián)網(wǎng)了挤庇,因?yàn)榘姹径荚谧约弘娔X上。協(xié)同的方法是這樣的:比如說自己在電腦上改了文件A贷掖,其他人也在電腦上改了文件A嫡秕,這時(shí),你們兩之間只需把各自的修改推送給對(duì)方苹威,就可以互相看到對(duì)方的修改了昆咽。

五、Git的下載安裝

打開 git官網(wǎng)屠升,下載git對(duì)應(yīng)操作系統(tǒng)的版本潮改。按照系統(tǒng)的提示默認(rèn)安裝就ok狭郑!

六腹暖、基本操作命令

cd                      ---改變目錄。
cd ..                   ---回退到上一個(gè)目錄翰萨,直接cd進(jìn)入默認(rèn)目錄
pwd                     --- 顯示當(dāng)前所在的目錄路徑脏答。
mkdir                   ---創(chuàng)建文件夾
rm -rf 目錄名稱          ---刪除目錄下的所有文件、文件夾
rm -r 文件              ---刪除文件
ls                      ---查看文件
ls -la                  ---查看文件亩鬼、隱藏文件
vi 文件名                ---創(chuàng)建并打開文件
a                       ---編輯模式
ESC                     ---退出編輯模式
ZZ                      ---保存
cat filename            ---查看文件內(nèi)容
clear                   ---清屏
history                 ---查看命令歷史

七殖告、Git核心工作流程

Git本地有三個(gè)工作區(qū)域:工作目錄(Working Directory)暫存區(qū)(Stage/Index)雳锋、資源庫(kù)(Repository或Git Directory)黄绩。如果在加上遠(yuǎn)程的git倉(cāng)庫(kù)(Remote Directory)就可以分為四個(gè)工作區(qū)域。文件在這四個(gè)區(qū)域之間的轉(zhuǎn)換玷过。

  • Workspace:工作區(qū)爽丹,就是你平時(shí)存放項(xiàng)目代碼的地方
  • Index / Stage:暫存區(qū),用于臨時(shí)存放你的改動(dòng)辛蚊,事實(shí)上它只是一個(gè)文件粤蝎,保存即將提交到文件列表信息
  • Repository:倉(cāng)庫(kù)區(qū)(或本地倉(cāng)庫(kù)),就是安全存放數(shù)據(jù)的位置袋马,這里面有你提交到所有版本的數(shù)據(jù)初澎。其中HEAD指向最新放入倉(cāng)庫(kù)的版本
  • Remote:遠(yuǎn)程倉(cāng)庫(kù),托管代碼的服務(wù)器虑凛,可以簡(jiǎn)單的認(rèn)為是你項(xiàng)目組中的一臺(tái)電腦用于遠(yuǎn)程數(shù)據(jù)交換

7.1 git最基本的5個(gè)指令:

  • git init碑宴,初始化软啼,表示即將對(duì)當(dāng)前文件夾進(jìn)行版本控制。
  • git status墓懂,查看Git當(dāng)前狀態(tài)焰宣,如:那些文件被修改過、那些文件還未提交到版本庫(kù)等捕仔。
  • git add 文件名匕积,將指定文件添加到版本庫(kù)的暫存狀態(tài)。
  • git commit -m '提交信息'榜跌,將暫存區(qū)的文件提交到版本庫(kù)闪唆。
  • git log,查看提交記錄钓葫,即:歷史版本記錄
7.2 丟棄工作區(qū)文件
  • git checkout -- filename 悄蕾,丟棄工作區(qū)指定文件內(nèi)容
  • git checkout -- . ,丟棄工作區(qū)所有文件內(nèi)容
7.3 版本回滾操作
  • git reset --soft 版本號(hào) 础浮,回滾到指定版本
  • git reset 版本號(hào) 帆调,回滾到指定版本
  • git reset --hard 版本號(hào) ,回滾到指定版本豆同,將之前的刪除(慎用)
  • git reflog 番刊,找到所有的歷史記錄
  • git reset HEAD ./filename ,從暫存區(qū)回到工作區(qū)
7.4 標(biāo)簽操作
  • git tag "標(biāo)簽名" 影锈,給最新版本加標(biāo)簽
  • git tag "標(biāo)簽名" 版本號(hào) 芹务,給歷史版本加標(biāo)簽
  • git tag -d "標(biāo)簽名" ,刪除標(biāo)簽
  • git show "標(biāo)簽名" 鸭廷,查看標(biāo)簽內(nèi)容
7.5 分支操作
  • git branch 分支名稱 創(chuàng)建分支
  • git checkout 分支名稱 切換分支
  • git branch -m 分支名稱 創(chuàng)建并切換到指定分支
  • git branch 查看所有分支
  • git branch -d 分支名稱 刪除分支
  • git merge 分支名稱 將指定分支合并到當(dāng)前分支
7.6 push代碼
  • git remote add origin https://github.com/wangjifei/pondo.git 枣抱, 為地址起一個(gè)別名origin(僅第一次需要)
  • git remote remove origin,取消本地目錄下關(guān)聯(lián)的遠(yuǎn)程庫(kù):
  • git push origin master 辆床, 將本地master分支內(nèi)容以及版本信息推送到GitHub
7.7 clone代碼
7.8 拉代碼
  • git checkout dev 讼载,切換到dev分支
  • git pull origin dev 轿秧, 從遠(yuǎn)程GitHub倉(cāng)庫(kù)獲取dev分支最新內(nèi)容,并合并到本地
    【git pull origin 分支】命令等同于【git fetch origin 分支】+ 【git merge origin/分支】

更多詳情:
http://www.cnblogs.com/syp172654682/p/7689328.html(細(xì)而全维雇,但略顯復(fù)雜)
https://www.cnblogs.com/wupeiqi/p/7295372.html(簡(jiǎn)潔生動(dòng))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末淤刃,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子吱型,更是在濱河造成了極大的恐慌逸贾,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異铝侵,居然都是意外死亡灼伤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門咪鲜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來狐赡,“玉大人,你說我怎么就攤上這事疟丙∮敝叮” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵享郊,是天一觀的道長(zhǎng)览祖。 經(jīng)常有香客問我,道長(zhǎng)炊琉,這世上最難降的妖魔是什么展蒂? 我笑而不...
    開封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮苔咪,結(jié)果婚禮上锰悼,老公的妹妹穿的比我還像新娘。我一直安慰自己团赏,他們只是感情好箕般,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著馆里,像睡著了一般隘世。 火紅的嫁衣襯著肌膚如雪可柿。 梳的紋絲不亂的頭發(fā)上鸠踪,一...
    開封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天,我揣著相機(jī)與錄音复斥,去河邊找鬼营密。 笑死,一個(gè)胖子當(dāng)著我的面吹牛目锭,可吹牛的內(nèi)容都是我干的评汰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼痢虹,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼被去!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起奖唯,我...
    開封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤惨缆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坯墨,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡寂汇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了捣染。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片骄瓣。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖耍攘,靈堂內(nèi)的尸體忽然破棺而出榕栏,到底是詐尸還是另有隱情,我是刑警寧澤蕾各,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布臼膏,位于F島的核電站,受9級(jí)特大地震影響示损,放射性物質(zhì)發(fā)生泄漏渗磅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一检访、第九天 我趴在偏房一處隱蔽的房頂上張望始鱼。 院中可真熱鬧,春花似錦脆贵、人聲如沸医清。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽会烙。三九已至,卻和暖如春筒捺,著一層夾襖步出監(jiān)牢的瞬間柏腻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工系吭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留五嫂,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓肯尺,卻偏偏與公主長(zhǎng)得像沃缘,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子则吟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

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

  • Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照槐臀,而是把代碼倉(cāng)庫(kù)完整的鏡像下來。這樣一來氓仲,任何一處協(xié)同...
    __silhouette閱讀 15,887評(píng)論 5 147
  • Git常用語法 [TOC] Git簡(jiǎn)介 描述 ? Git(讀音為/g?t/水慨。)是一個(gè)開源的分布式版本控制系統(tǒng)败匹,...
    君惜丶閱讀 3,517評(píng)論 0 13
  • Git 命令行學(xué)習(xí)筆記 Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉(cāng)庫(kù)完整的鏡像下來...
    sunnyghx閱讀 3,921評(píng)論 0 11
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git讥巡,從https:/...
    落魂灬閱讀 12,663評(píng)論 4 54
  • 導(dǎo)讀:同是一個(gè)地區(qū)的拆遷欢顷,但是有的人的拆遷補(bǔ)償費(fèi)會(huì)高出最初標(biāo)準(zhǔn)的幾倍甚至幾十倍槽棍,而有的人拆遷補(bǔ)償費(fèi)卻低出了基本的市...
    2abe0c0c341d閱讀 337評(píng)論 0 0