創(chuàng)建新倉(cāng)庫(kù)
創(chuàng)建新的文件夾缓熟,打開且预,然后執(zhí)行
git init
從而創(chuàng)建新的git倉(cāng)庫(kù)
檢出倉(cāng)庫(kù)
執(zhí)行下面的命令以創(chuàng)建一個(gè)本地倉(cāng)庫(kù)的克隆版本
git clone /path/to/repository
如果是遠(yuǎn)程服務(wù)器上的倉(cāng)庫(kù)驶赏,你的命令會(huì)是這樣子
git clone username@host:/path/to/repository
工作流
本地倉(cāng)庫(kù)由git維護(hù)的三棵“樹”組成。第一個(gè)是你的工作目錄,它擁有實(shí)際文件肩民;第二個(gè)是緩存區(qū)(index),它像個(gè)緩存區(qū)域,臨時(shí)保存你的改動(dòng)链方;最后是HEAD持痰,指向你最近一次提交后的結(jié)果
添加和提交
把它們添加到緩存區(qū),使用下面的命令,右鍵該文件
git add .
使用以下命令以實(shí)際提交改動(dòng):
git commit -m "代碼提交信息"
現(xiàn)在祟蚀,改動(dòng)已經(jīng)提交到HEAD工窍,但是還沒有到你的遠(yuǎn)程倉(cāng)庫(kù)
推送改動(dòng)
你的改動(dòng)現(xiàn)在已經(jīng)在本地倉(cāng)庫(kù)的 HEAD 中了。執(zhí)行如下命令以將這些改動(dòng)提交到遠(yuǎn)端倉(cāng)庫(kù)
git push origin master
可以把 master 換成你想要推送的任何分支前酿。
如果你還沒有克隆現(xiàn)有倉(cāng)庫(kù)患雏,并欲將你的倉(cāng)庫(kù)連接到某個(gè)遠(yuǎn)程服務(wù)器,你可以使用如下命令添加:
git remote add origin <server>
如此你就能夠?qū)⒛愕母膭?dòng)推送到所添加的服務(wù)器上去了罢维。
分支
分支是用來將特性開發(fā)絕緣開來的淹仑。在你創(chuàng)建倉(cāng)庫(kù)的時(shí)候,master是“默認(rèn)的”肺孵。在其他分支上進(jìn)行開發(fā)匀借,完成后再將他們合并到主分支上
創(chuàng)建一個(gè)叫做“feature_x”的分支,并切換過去:
git checkout -b feature_x
切換回主分支
git checkout master
再把新建的分支刪除掉
git branch -d feature_x
除非你將分支推送到遠(yuǎn)程倉(cāng)庫(kù)平窘,不然該分支就是不為他人所看到的
git push origin <branch>
合并與更新
要更新你的本地倉(cāng)庫(kù)至最新改動(dòng)吓肋,執(zhí)行:
git pull
以在你的工作目錄中 獲取(fetch) 并 合并(merge) 遠(yuǎn)端的改動(dòng)瑰艘。要合并其他分支到你的當(dāng)前分支(例如 master)是鬼,執(zhí)行:
git merge <branch>
兩種情況下,git 都會(huì)嘗試去自動(dòng)合并改動(dòng)紫新。不幸的是屑咳,自動(dòng)合并并非次次都能成功,并可能導(dǎo)致 沖突(conflicts)弊琴。 這時(shí)候就需要你修改這些文件來人肉合并這些 沖突(conflicts) 了兆龙。改完之后,你需要執(zhí)行如下命令以將它們標(biāo)記為合并成功:
git add <filename>
在合并改動(dòng)之前,也可以使用如下命令查看:
git diff <source_branch> <target_branch>
標(biāo)簽
在軟件發(fā)布時(shí)創(chuàng)建標(biāo)簽紫皇,是被推薦的慰安。這是個(gè)舊有概念,在 SVN 中也有聪铺』溃可以執(zhí)行如下命令以創(chuàng)建一個(gè)叫做 1.0.0 的標(biāo)簽:
git tag 1.0.0 1b2e1d63ff
1b2e1d63ff 是你想要標(biāo)記的提交 ID 的前 10 位字符。使用如下命令獲取提交 ID:
git log
你也可以用該提交 ID 的少一些的前幾位铃剔,只要它是唯一的撒桨。
替換本地改動(dòng)
假如你做錯(cuò)事(自然,這是不可能的)键兜,你可以使用如下命令替換掉本地改動(dòng):
git checkout -- <filename>
此命令會(huì)使用 HEAD 中的最新內(nèi)容替換掉你的工作目錄中的文件凤类。已添加到緩存區(qū)的改動(dòng),以及新文件普气,都不受影響谜疤。
假如你想要丟棄你所有的本地改動(dòng)與提交,可以到服務(wù)器上獲取最新的版本并將你本地主分支指向到它:
git fetch origin
git reset --hard origin/master
有用的貼士
內(nèi)建的圖形化 git:
gitk
彩色的 git 輸出:
git config color.ui true
顯示歷史記錄時(shí)现诀,只顯示一行注釋信息:
git config format.pretty oneline
交互地添加文件至緩存區(qū):
git add -i