版本控制及git常用基本命令

title: 版本控制及git常用基本命令
date: 2015-12-04 11:40:04
tags: [git, version control, 版本控制]


(此文章適合聽說(shuō)過(guò)git盯滚,大概知道git是什么東東扇商,但是又不會(huì)git命令的童鞋閱讀。
時(shí)間充裕的童鞋可以到codecademy跟著教程一步步走)

Git是一個(gè)分布式的版本管理(Version Control)工具葵擎。

版本管理這個(gè)概念很多童鞋可能不是很清楚脑豹,但其實(shí)在代碼創(chuàng)作的過(guò)程中很可能已經(jīng)使用過(guò)了一些傳統(tǒng)的方法码撰,比如我初中高中的時(shí)候創(chuàng)作博客模板的時(shí)候谭期,對(duì)同一個(gè)模板想做一些不同的調(diào)整,同時(shí)又擔(dān)心調(diào)整后原來(lái)的功能啊顯示啊的會(huì)受到影響兆旬,那時(shí)候還不知道github之類的東東假抄,于是機(jī)智地

  1. 創(chuàng)建了很多文件夾來(lái)放不同的模板
  1. 不停的備份
  2. 如果調(diào)整后正常運(yùn)行和顯示,那就使用最新的版本
  3. 如果調(diào)整后不能正常運(yùn)行同時(shí)又找不出問(wèn)題所在丽猬,就是用備份的上一個(gè)版本來(lái)重新創(chuàng)作

以上對(duì)應(yīng)到版本控制系統(tǒng)分別是:

  1. 創(chuàng)建分支(branch)
  1. 提交代碼(commit)
  2. 合并分支(merge)
  3. 版本回滾(checkout)

關(guān)于git的概念及使用流程這里不詳細(xì)討論慨亲,暫時(shí)只討論一些最基本的常用的git命令

  • git init 初始化一個(gè)git倉(cāng)庫(kù),生成.git隱藏文件
  • git status 查看git倉(cāng)庫(kù)的狀態(tài)宝鼓,將會(huì)返回當(dāng)前分支, 文件狀態(tài)等信息刑棵,可以使用-s參數(shù)查看只有文件狀態(tài)的簡(jiǎn)潔版信息
  • git clone <repo location> <repo name> 將遠(yuǎn)程分支克隆到本地,<repo name>參數(shù)可選愚铡,為本地repo命名蛉签,若省略,則本地repo與遠(yuǎn)程同名
  • git add <file name> 將文件變?yōu)閟taged狀態(tài)沥寥,也就是告訴git哪些新的文件和修改過(guò)的文件是之后要提交的碍舍;文件名支持正則表達(dá)式
  • git rm <file name> 將文件刪除同時(shí)告訴git從git倉(cāng)庫(kù)中刪除文件,可以使用 --cached 參數(shù)實(shí)現(xiàn)只從git倉(cāng)庫(kù)中刪除而不刪除本地文件
  • git diff <file name> 查看git倉(cāng)庫(kù)文件與本地文件的區(qū)別
  • git commit -m "some comment" 將修改提交到git倉(cāng)庫(kù)
  • git show HEAD 顯示HEAD版本的相關(guān)信息邑雅,包括author片橡,datecomment淮野,diff
  • git log 查看提交記錄捧书,包括提交的時(shí)間、作者骤星、評(píng)論
  • git reset SHA 將本地git倉(cāng)庫(kù)回退到某個(gè)版本经瓷,其中SHA為版本log中commit后的一長(zhǎng)串字符的前7位字符
  • git reset HEAD <file name> 將本地git倉(cāng)庫(kù)中的某個(gè)文件重置為git倉(cāng)庫(kù)的HEAD版本
  • git checkout HEAD 使用git倉(cāng)庫(kù)中的文件覆蓋當(dāng)前的整個(gè)working copy,可以在修改了某些文件但想舍棄這些修改的時(shí)候使用這個(gè)命令

需要注意reset是針對(duì)本地的git倉(cāng)庫(kù)洞难,也就是你每次commit后舆吮,文件就會(huì)保存到的倉(cāng)庫(kù)。
checkout是針對(duì)本地的工作副本,也就是你直接編輯的那些文件色冀,會(huì)被overwrite

  • git branch 查看分支信息潭袱,使用-r參數(shù)查看遠(yuǎn)程分支信息
  • git branch <branch name> 添加新的分支
  • git branch -d <branch name> 刪除分支
  • git checkout <branch name> 切換分支,可以使用-b參數(shù)锋恬,創(chuàng)建新分支并切換到新分支
  • git fetch 獲取遠(yuǎn)程origin/master分支最新版本敌卓,需要手動(dòng)與本地文件merge
  • git pull 獲取遠(yuǎn)程的最新版本并與本地merge

需要注意 git fetchgit pull 的不同,通常如果本地文件有改動(dòng)伶氢,則應(yīng)該先f(wàn)etch在 git merge origin/master

  • git stash 將本地的工作副本暫時(shí)存起來(lái)
  • git pop 將存起來(lái)的工作副本放出來(lái)…

git stashgit pop 通常在git pullgit merge的時(shí)候如果有沖突(conflict)的時(shí)候使用,pop之后有沖突的工作副本會(huì)變成如下的樣子瘪吏,沖突的resolve就是選取最終的內(nèi)容癣防,然后刪除多余的內(nèi)容,包括<<< ===>>>這些行也要?jiǎng)h除掌眠,讓代碼看起來(lái)和正常的代碼一樣蕾盯。

//git pop之后的沖突文件看起來(lái)長(zhǎng)這樣:
 <<<<<<< their code
 var a = 123;
 =======
 var a = 456;
 >>>>>>> my code
//沖突解決后,看起來(lái)應(yīng)該長(zhǎng)這樣:
 var a = 123;
  • git merge <branch name> 合并分支蓝丙,將指定分支與當(dāng)前分支合并

origin/master分支為遠(yuǎn)程主分支

  • git push origin <branch name> 把分支推送到遠(yuǎn)程
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末级遭,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子渺尘,更是在濱河造成了極大的恐慌挫鸽,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸥跟,死亡現(xiàn)場(chǎng)離奇詭異丢郊,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)医咨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門枫匾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人拟淮,你說(shuō)我怎么就攤上這事干茉。” “怎么了很泊?”我有些...
    開封第一講書人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵角虫,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我委造,道長(zhǎng)上遥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任争涌,我火速辦了婚禮粉楚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己模软,他們只是感情好伟骨,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著燃异,像睡著了一般携狭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上回俐,一...
    開封第一講書人閱讀 49,816評(píng)論 1 290
  • 那天逛腿,我揣著相機(jī)與錄音,去河邊找鬼仅颇。 笑死单默,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的忘瓦。 我是一名探鬼主播搁廓,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼耕皮!你這毒婦竟也來(lái)了境蜕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤凌停,失蹤者是張志新(化名)和其女友劉穎粱年,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體罚拟,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡逼泣,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了舟舒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拉庶。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖秃励,靈堂內(nèi)的尸體忽然破棺而出氏仗,到底是詐尸還是另有隱情,我是刑警寧澤夺鲜,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布皆尔,位于F島的核電站,受9級(jí)特大地震影響币励,放射性物質(zhì)發(fā)生泄漏慷蠕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一食呻、第九天 我趴在偏房一處隱蔽的房頂上張望流炕。 院中可真熱鬧澎现,春花似錦、人聲如沸每辟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)渠欺。三九已至妹蔽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間挠将,已是汗流浹背胳岂。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留舔稀,地道東北人乳丰。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像镶蹋,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子赏半,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348

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