Git 管理(一)

原文地址夢想小筑

安裝

下載 git OSX 版

下載 git Windows 版

下載 git Linux 版

創(chuàng)建新倉庫

創(chuàng)建新文件夾,打開蛹批,然后執(zhí)行

git init

以創(chuàng)建新的 git 倉庫。

檢出倉庫

執(zhí)行如下命令以創(chuàng)建一個本地倉庫的克隆版本:

git clone /path/to/repository 

如果是遠(yuǎn)端服務(wù)器上的倉庫武翎,你的命令會是這個樣子:

git clone username@host:/path/to/repository

工作流

你的本地倉庫由 git 維護的三棵“樹”組成。第一個是你的工作目錄,它持有實際文件枝誊;第二個是暫存區(qū)(Index),它像個緩存區(qū)域惜纸,臨時保存你的改動叶撒;最后是HEAD,它指向你最后一次提交的結(jié)果耐版。

image

添加和提交

你可以提出更改(把它們添加到暫存區(qū))祠够,使用如下命令:

# 添加文件 filename
git add <filename>
# 添加所有文件
git add *

這是 git 基本工作流程的第一步;使用如下命令以實際提交改動:

git commit -m "代碼提交信息"

現(xiàn)在粪牲,你的改動已經(jīng)提交到了HEAD古瓤,但是還沒到你的遠(yuǎn)端倉庫。

推送改動

你的改動現(xiàn)在已經(jīng)在本地倉庫的 HEAD 中了腺阳。執(zhí)行如下命令以將這些改動提交到遠(yuǎn)端倉庫:

git push origin master

可以把master換成你想要推送的任何分支落君。

如果你還沒有克隆現(xiàn)有倉庫,并欲將你的倉庫連接到某個遠(yuǎn)程服務(wù)器亭引,你可以使用如下命令添加:

git remote add origin <server>

如此你就能夠?qū)⒛愕母膭油扑偷剿砑拥姆?wù)器上去了叽奥。

分支

分支是用來將特性開發(fā)絕緣開來的。在你創(chuàng)建倉庫的時候痛侍,master 是“默認(rèn)的”分支朝氓。在其他分支上進行開發(fā),完成后再將它們合并到主分支上主届。


image

創(chuàng)建一個叫做“feature_x”的分支赵哲,并切換過去:

git checkout -b feature_x

切換回主分支:

git checkout master

再把新建的分支刪掉:

git branch -d feature_x

除非你將分支推送到遠(yuǎn)端倉庫,不然該分支就是 不為他人所見的:

git push origin <branch>

更新與合并

要更新你的本地倉庫至最新改動君丁,執(zhí)行:

git pull

以在你的工作目錄中 獲取(fetch)并合并(merge)遠(yuǎn)端的改動枫夺。
要合并其他分支到你的當(dāng)前分支(例如master),執(zhí)行:

git merge <branch>

在這兩種情況下绘闷,git都會嘗試去自動合并改動橡庞。遺憾的是,這可能并非每次都成功印蔗,并可能出現(xiàn)沖突(conflicts)扒最。 這時候就需要你修改這些文件來手動合并這些沖突(conflicts)。改完之后华嘹,你需要執(zhí)行如下命令以將它們標(biāo)記為合并成功:

git add <filename>

在合并改動之前吧趣,你可以使用如下命令預(yù)覽差異:

git diff <source_branch> <target_branch>

標(biāo)簽

為軟件發(fā)布創(chuàng)建標(biāo)簽是推薦的。這個概念早已存在,在 SVN 中也有强挫。你可以執(zhí)行如下命令創(chuàng)建一個叫做 1.0.0 的標(biāo)簽:

git tag 1.0.0 1b2e1d63ff

1b2e1d63ff 是你想要標(biāo)記的提交 ID 的前 10 位字符岔霸。可以使用下列命令獲取提交 ID:

git log

你也可以使用少一點的提交 ID 前幾位俯渤,只要它的指向具有唯一性呆细。

log

如果你想了解本地倉庫的歷史記錄八匠,最簡單的命令就是使用:

git log

你可以添加一些參數(shù)來修改他的輸出侦鹏,從而得到自己想要的結(jié)果。 只看某一個人的提交記錄:

git log --author=bob

一個壓縮后的每一條提交記錄只占一行的輸出:

git log --pretty=oneline

或者你想通過 ASCII 藝術(shù)的樹形結(jié)構(gòu)來展示所有的分支, 每個分支都標(biāo)示了他的名字和標(biāo)簽:

git log --graph --oneline --decorate --all

看看哪些文件改變了:

git log --name-status

這些只是你可以使用的參數(shù)中很小的一部分。更多的信息床嫌,參考:

git log --help

替換本地改動

假如你操作失誤(當(dāng)然,這最好永遠(yuǎn)不要發(fā)生)胸私,你可以使用如下命令替換掉本地改動:

git checkout -- <filename>

此命令會使用 HEAD 中的最新內(nèi)容替換掉你的工作目錄中的文件厌处。已添加到暫存區(qū)的改動以及新文件都不會受到影響。

假如你想丟棄你在本地的所有改動與提交岁疼,可以到服務(wù)器上獲取最新的版本歷史阔涉,并將你本地主分支指向它:

git fetch origin
git reset --hard origin/master

實用小貼士

內(nèi)建的圖形化 git:

gitk

彩色的 git 輸出:

git config color.ui true

顯示歷史記錄時,每個提交的信息只顯示一行:

git config format.pretty oneline

交互式添加文件到暫存區(qū):

git add -i

鏈接與資源

圖形化客戶端

GitX (L) (OSX, 開源軟件)
Tower (OSX)
Source Tree (OSX, 免費)
GitHub for Mac (OSX, 免費)
GitBox (OSX, App Store)

指南和手冊

Git 社區(qū)參考書
專業(yè) Git
像 git 那樣思考
GitHub 幫助
圖解 Git

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末捷绒,一起剝皮案震驚了整個濱河市瑰排,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌暖侨,老刑警劉巖椭住,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異字逗,居然都是意外死亡京郑,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門葫掉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來些举,“玉大人,你說我怎么就攤上這事俭厚〗鹁埽” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長绪抛。 經(jīng)常有香客問我资铡,道長,這世上最難降的妖魔是什么幢码? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任笤休,我火速辦了婚禮,結(jié)果婚禮上症副,老公的妹妹穿的比我還像新娘店雅。我一直安慰自己,他們只是感情好贞铣,可當(dāng)我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布闹啦。 她就那樣靜靜地躺著,像睡著了一般辕坝。 火紅的嫁衣襯著肌膚如雪窍奋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天酱畅,我揣著相機與錄音琳袄,去河邊找鬼。 笑死纺酸,一個胖子當(dāng)著我的面吹牛窖逗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播餐蔬,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼碎紊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了樊诺?” 一聲冷哼從身側(cè)響起矮慕,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎啄骇,沒想到半個月后痴鳄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡缸夹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年痪寻,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虽惭。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡橡类,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出芽唇,到底是詐尸還是另有隱情顾画,我是刑警寧澤取劫,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站研侣,受9級特大地震影響谱邪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜庶诡,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一惦银、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧末誓,春花似錦扯俱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至晴玖,卻和暖如春读存,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背窜醉。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留艺谆,地道東北人榨惰。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像静汤,于是被迫代替她去往敵國和親琅催。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,728評論 2 351

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

  • Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照虫给,而是把代碼倉庫完整的鏡像下來藤抡。這樣一來,任何一處協(xié)同...
    __silhouette閱讀 15,860評論 5 147
  • Git 命令行學(xué)習(xí)筆記 Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照抹估,而是把代碼倉庫完整的鏡像下來...
    sunnyghx閱讀 3,908評論 0 11
  • Git是目前最流行的版本管理系統(tǒng)缠黍,也是最先進的分布式版本控制系統(tǒng)(distributed version cont...
    pro648閱讀 5,684評論 1 17
  • 一年之計在于春,一天之計在于晨药蜻〈墒剑可是我最討厭早晨,因為早晨要喊兒子起床语泽,每天都得像老巫婆一樣吼幾嗓子才能叫醒...
    Aaa艾米閱讀 350評論 1 6
  • 如果有一天突然死了贸典,那是因為沒有錢又有很多人福要走,有很多開支要付踱卵,因為前方?jīng)]有路廊驼,因為孤單,因為家人的厭惡和嫌棄...
    淺藍深藍513閱讀 132評論 0 0