一種常見的版本控制工具
獲取
克隆倉庫
git支持以ssh或者http的方式來標(biāo)識遠程倉庫
git clone git@github.com:username/project.git
git clone https://github.com/username/project
git clone git@github.com:username/project.git ~/projects/path # 將遠程倉庫克隆到本地指定目錄
以上兩條命令作用相同,均是將github上的倉庫克隆到本地
拉取遠程倉庫
git pull # 拉取遠程倉庫的更新晃琳,并與本地修改合并
git fetch --all # 獲取最新代碼到本地敞映,不進行合并操作
git reset --hard origin/master # 把HEAD指向最新的版本
在拉取更新時官辈,若直接執(zhí)行g(shù)it pull操作榄檬,則會將遠程更新與本地更新合并督函,此時本地文件將出現(xiàn)待提交狀態(tài)帆调,即使本地并未修改
若僅僅想拉取遠程修改并覆蓋更新本地的文件沽瞭,需執(zhí)行以上fetch及reset命令
暫存
在git中迁匠,可通過stash子命令將本地修改暫存起來,并在合適時取出來并合并驹溃。
假如項目中遇到類似這種情況:
當(dāng)前本地正處于主分支上開發(fā)城丧,功能做了一半,尚未提交修改
被告知線上穩(wěn)定分支存在bug豌鹤,急需修復(fù)
此時便可通過git stash命令將本地修改移至?xí)捍鎱^(qū)亡哄,同時本地切換至穩(wěn)定分支進行修改bug,并進行提交等操作布疙。
完成后再切換回主分支蚊惯,同時通過stash pop或stash apply命令將之前暫存的修改取出來,便可繼續(xù)之前的開發(fā)工作灵临。
暫存當(dāng)前修改
每次暫存都會在暫存區(qū)中產(chǎn)生一條暫存記錄
git stash
查看暫存列表
列表中每條暫存記錄會有一個編號截型,類似于stash@{x}這種格式
git stash list
取出暫存記錄
stash pop 命令取出暫存記錄,與當(dāng)前分支合并儒溉,同時該記錄會從暫存列表中刪除
stash apply 作用與stash pop宦焦,但取出后不會將記錄刪除,所以可以多次執(zhí)行
git stash pop stash@{x}
git stash apply stash@{x}
刪除暫存記錄
git stash drop stash@{0}
提交
git提交需要兩步操作顿涣,首先將修改commit到本地倉庫波闹,再將本地的提交push到遠程倉庫,之后才可被其它人下載到园骆。
查看本地倉庫狀態(tài)
git status
status子命令顯示當(dāng)前本地倉庫的狀態(tài)舔痪。未提交、未加入版本控制锌唾、已刪除锄码、版本沖突等可通過該命令查看。
將本地修改加入待提交列表
git add . # 將所有本地修改加入版本控制
git add abc.txt # 將指定文件的修改加入版本控制
提交本地更改
git commit -m "提交備注"
在commit時僅僅將修改提交的本地倉庫晌涕,其它人無法獲取到滋捶,直到執(zhí)行push操作,將本地倉庫的提交推到遠程倉庫
遠程倉庫
查看
遠程倉庫可以通過remote子命令查看余黎,-v參數(shù)可以查看遠程倉庫具體的指向地址重窟。
$ git remote
origin
$ git remote -v
origin git@github.com:username/project.git (fetch)
origin git@github.com:username/project.git (push)
刪除
通過remote rm 子命令刪除遠程倉庫
$ git remote rm origin # 移除origin遠程倉庫
添加
使用remote add子命令添加遠程倉庫,其中origin無特殊意義惧财,是遠程倉庫在本地的一個助記簡稱巡扇。
$ git remote add origin https://github.com/pnnh/chatcpp.git
修改
使用remote rename子命令修改遠程倉庫在本地的助記簡稱扭仁。
$ git remote rename origin master # 將origin倉庫重命名為master
詳情
remote show子命令可以查看遠程倉庫的詳情描述,這些信息包括:
比如查看所有處于跟蹤狀態(tài)中的遠端分支厅翔,查看運行 git push 時缺省推送的分支是什么乖坠,哪些已同步的分支在本地存在,但在遠端服務(wù)器上已被刪除 刀闷,運行 git pull 時將自動合并哪些分支等等熊泵。
$ git remote show origin
推送本地修改
git push
# 只推送本地master分支的提交到origin遠程倉庫,需要先設(shè)置本地分支與遠程分支的跟蹤關(guān)系
git push origin master
將修改commit到本地倉庫時甸昏,無法被其它人下載到顽分,版本還保留在本地。此時可通過push子命令將本地修改推送到遠程倉庫施蜜。