git學(xué)習(xí)及常用代碼

記錄一下學(xué)習(xí)git過程中的感悟和知識點(diǎn)

無意間在網(wǎng)上看到的圖割笙,將git的工作原理表現(xiàn)的淋漓盡致特幔,特來分享下


2016083038416QQ20160830-0.png

解釋一下:

  • workspace就是工作區(qū)竞阐,可以理解問本地的代碼工作區(qū)域喘沿,不與本地倉庫掛鉤,只要不提交侣肄,本地倉庫就不會變。
  • index 就是暫存區(qū)醇份,因?yàn)閣orkspace的代碼在commit提交到本地倉庫前需要先add到暫存區(qū)(進(jìn)行檢查稼锅,看查diff等操作)
  • Repository 是本地的倉庫,顧名思義就是存儲本地代碼和修改記錄的地方僚纷,跟遠(yuǎn)程倉庫其實(shí)是一樣的矩距,只不過是本地的而已,他是從遠(yuǎn)程clone下來的怖竭。
  • Remote就是遠(yuǎn)程的倉庫锥债,里面存放代碼和修改記錄等信息,與本地倉不同的就是在網(wǎng)上放著侵状, 不怕電腦GG赞弥,可以讓其他clone到他們的本地。

操作:

  • add,將本次工作修改的代碼提交到暫存區(qū)(index)等待查看等趣兄,
  • commit 將本次的修改提交到本地倉庫绽左,后綴本次修改的備注(一定要先add了再commit)
  • checkout 新建一個本地的分支來工作,一般是在新添功能的時候做的艇潭,新建一個分支不影響主分支拼窥,完成后再合并到主分支
  • push 將本地倉庫的修改推到遠(yuǎn)程倉庫分支,使遠(yuǎn)程倉庫獲取最新的代碼蹋凝,(一般都是要推到遠(yuǎn)程的分支的鲁纠,一般遠(yuǎn)程的主分支是上線版本,不能輕易動的鳍寂,遠(yuǎn)程分支上用來測試升級版的)
  • fetch改含,默認(rèn)情況下,取回所有分支的更新迄汛,如果只想取回特定分支的更新捍壤,可以指定分支名骤视。
  • clone ,完整的將倉庫master分支上的代碼全部clone下來
  • pull 本地獲取遠(yuǎn)程的更新鹃觉。

最常用的一些git命令

配置

  • git init # 初始化本地git倉庫(創(chuàng)建新倉庫)

  • git config --global user.name "xxx" 配置用戶名

  • git config --global user.email "xxx@xxx.com" 配置郵件

  • git config --global color.ui true 給git status等命令自動著色

  • git config --global color.status auto

  • git config --global color.diff auto

  • git config --global color.branch auto

  • git config --global color.interactive auto

正文

  • git clone git或者ssh://git@000.000.0.0/XX.git clone遠(yuǎn)程倉庫

  • git status 查看當(dāng)前版本狀態(tài)(是否修改)

  • git add XXX 添加XXX文件至?xí)捍鎱^(qū)

  • git add . 增加當(dāng)前子目錄下所有更改過的文件至?xí)捍鎱^(qū)

  • git commit -m 'xxx' 提交(后面加本次提交信息专酗,不寫會報(bào)奇怪的錯)

  • git commit --amend -m 'xxx' 合并上一次提交(用于反復(fù)修改)

  • git commit -am 'xxx' 將add和commit合為一步

  • git rm xxx 刪除暫存區(qū)中的文件

  • git rm -r * 遞歸刪除

  • git log 顯示提交日志

  • git log -1 顯示1行日志 -n為n行

  • git log --stat 顯示提交日志及相關(guān)變動文件
  • git show XXXXX 顯示某個提交的詳細(xì)內(nèi)容

  • git tag 顯示已存在的tag

  • git tag -a v2.0 -m 'xxx' 增加v2.0的tag

  • git show v2.0 顯示v2.0的日志及詳細(xì)內(nèi)容

  • git log v2.0 顯示v2.0的日志

  • git diff 顯示所有未添加至?xí)捍鎱^(qū)的變更

  • git diff --cached 顯示所有已添加index但還未commit的變更

  • git diff HEAD^ 比較與上一個版本的差異

  • git diff origin/master..master 比較本地master分支上沒有的遠(yuǎn)程主分支區(qū)別

  • git remote add origin git+ssh:// 增加遠(yuǎn)程定義(用于push/pull/fetch)

  • git branch 顯示本地分支

  • git branch --contains xxxx 顯示包含提交xxxx的分支

  • git branch -a 顯示所有分支,本地和遠(yuǎn)程的

  • git branch -r 顯示所有原創(chuàng)分支

  • git branch --merged 顯示所有已合并到當(dāng)前分支的分支

  • git branch --no-merged 顯示所有未合并到當(dāng)前分支的分支

  • git branch -m master master_copy 本地分支改名

  • git checkout -b master_copy 從當(dāng)前分支創(chuàng)建新分支master_copy并檢出

  • git checkout v2.0 檢出版本v2.0

  • git checkout -b XXXX origin/YYY 從遠(yuǎn)程分支XXXX創(chuàng)建新本地分支YYY并檢出

  • git merge origin/master 合并遠(yuǎn)程master分支至當(dāng)前分支

  • git cherry-pick XXX 合并提交XXX的修改

  • git push origin master 將當(dāng)前分支push到遠(yuǎn)程master分支

  • git push origin :XXX/YYY 刪除遠(yuǎn)程倉庫的XXX/YYY分支

  • git push --tags 把所有tag推送到遠(yuǎn)程倉庫

  • git fetch 獲取所有遠(yuǎn)程分支(不更新本地分支盗扇,另需merge)

  • git fetch --prune 獲取所有原創(chuàng)分支并清除服務(wù)器上已刪掉的分支

  • git pull origin master 獲取遠(yuǎn)程分支master并merge到當(dāng)前分支

  • git reset --hard HEAD 將當(dāng)前版本重置為HEAD(通常用于merge失敗回退)

  • git branch -d XXX/YYY 刪除分支XXX/YYY(本分支修改已合并到其他分支)

  • git branch -D XXX/YYY 強(qiáng)制刪除分支XXX/YYY

  • git ls-files 列出git index包含的文件

  • git show-branch 圖示當(dāng)前分支歷史

  • git show-branch --all 圖示所有分支歷史

  • git whatchanged 顯示提交歷史對應(yīng)的文件修改

  • git revert XXXXXXXX 撤銷提交

  • git stash 暫存當(dāng)前修改祷肯,將所有至為HEAD狀態(tài)

  • git stash list 查看所有暫存

  • git stash show -p stash@{0} 參考第一次暫存

  • git stash apply stash@{0} 應(yīng)用第一次暫存


以后git用的多了 肯定會增加命令的 ,以后再補(bǔ)充吧


幾篇學(xué)習(xí)git非常好的教程:
易佰網(wǎng)的git教程
伯樂在線的git系列教程共有九篇疗隶,講的非常詳細(xì)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末佑笋,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子抽减,更是在濱河造成了極大的恐慌允青,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卵沉,死亡現(xiàn)場離奇詭異颠锉,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)史汗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門琼掠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人停撞,你說我怎么就攤上這事瓷蛙。” “怎么了戈毒?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵艰猬,是天一觀的道長。 經(jīng)常有香客問我埋市,道長冠桃,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任道宅,我火速辦了婚禮食听,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘污茵。我一直安慰自己樱报,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布泞当。 她就那樣靜靜地躺著迹蛤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上笤受,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天穷缤,我揣著相機(jī)與錄音,去河邊找鬼箩兽。 笑死,一個胖子當(dāng)著我的面吹牛章喉,可吹牛的內(nèi)容都是我干的汗贫。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼秸脱,長吁一口氣:“原來是場噩夢啊……” “哼落包!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起摊唇,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤咐蝇,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后巷查,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體有序,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年岛请,在試婚紗的時候發(fā)現(xiàn)自己被綠了旭寿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡崇败,死狀恐怖盅称,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情后室,我是刑警寧澤缩膝,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站岸霹,受9級特大地震影響疾层,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜松申,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一云芦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧贸桶,春花似錦舅逸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春旗笔,著一層夾襖步出監(jiān)牢的瞬間彪置,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工蝇恶, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拳魁,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓撮弧,卻偏偏與公主長得像潘懊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子贿衍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評論 2 345

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