安裝(macOS)
1.安裝Homebrew :軟件包管理器,用于管理一些開源軟件在 Mac OS X 上的安裝和升級
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2.安裝完成后蔫耽,執(zhí)行g(shù)it安裝命结耀。
$ brew install git
3.Git是分布式版本控制系統(tǒng),所以匙铡,每個機器都必須自報家門图甜;注意git config命令的--global參數(shù),用了這個參數(shù)鳖眼,表示你這臺機器上所有的Git倉庫都會使用這個配置黑毅,當(dāng)然也可以對某個倉庫指定不同的用戶名和Email地址(不要 --global )
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
簡單使用
1.把一個文件目錄變成Git可以管理的倉庫
$ cd ~/Desktop/
$ mkdir test
$ cd test
$ git init
2.添加文件提交到倉庫(需把文件放在git倉庫目錄下;-m后面輸入的是本次提交的說明具帮,最好是有閱讀意義的英文)
$ git add eadme.txt
$ git commit -m "wrote a readme file"
3.查看倉庫當(dāng)前的狀態(tài)博肋,哪些文件被修改
$ git status
4.查看文件被修改的具體地方
$ git diff read.txt
5.查看提交的歷史記錄(-pretty=online 表示只看主要信息,提交的版本號及commit說明蜂厅,不要也行)
$ git log -pretty=oneline
$ git reflog (查看所有commit記錄)
6.回退到上一次提交的版本 或 任意一個版本(commit_id 沒必要寫全)
$ git reset --hard HEAD^
$ git reset --hard commit_id
7.暫存區(qū) 和 緩存區(qū)
git add把文件添加進去匪凡,實際上就是把文件修改添加到暫存區(qū);
git commit提交更改掘猿,實際上就是把暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支
git diff HEAD -- readme.txt:命令可以查看readme.txt文件在工作區(qū)和版本庫里面最新版本的區(qū)別
git checkout -- readme.txt:把readme.txt文件在工作區(qū)的修改全部撤銷
git checkout其實是用版本庫里的版本替換工作區(qū)的版本病游,無論工作區(qū)是修改還是刪除,都可以“一鍵還原”
git reset HEAD file:可以把暫存區(qū)的修改撤銷掉
刪除文件:git rm刪掉稠通,并且git commit
中級使用
1.本地倉庫關(guān)聯(lián)遠(yuǎn)程倉庫(GitHub)
$ git remote add origin git@github.com:NGjiapeche/UpcodebySwift.git
$ git remote -v (查看是否關(guān)聯(lián)遠(yuǎn)程倉庫)
2.本地庫的內(nèi)容推送到遠(yuǎn)程(第一次推送master分支時衬衬,加上了-u參數(shù),在以后的推送或者拉取時就可以簡化命令)
$ git push -u origin maste
3.從遠(yuǎn)程庫克隆
$ gir clone git@github.com:NGjiapeche/UpcodebySwift.git
4.創(chuàng)建dev分支改橘,然后切換到dev分支
$ git checkout -b dev (等于兩面2個命令)
$ git branch dev (創(chuàng)建分支)
$ git checkout dev (切換到分支)
$ git branch -a (查看所有分支)
$ git branch -d dev (刪除dev分支)
$ git branch -D dev (強行刪除未合并過的分支)
6.把dev分支的工作成果合并到master分支(在master分支下操作)
$ git merge dev (Fast forward)
$ git merge --no-ff -m "merge with no-ff" dev (普通模式合并滋尉,合并后的歷史有分支,能看出來曾經(jīng)做過合并)
7.查看分支合并圖
$ git log --graph --pretty=oneline --abbrev-commit
8.當(dāng)dev分支還無法提交時飞主,需要去修復(fù)緊急bug分支時(把當(dāng)前工作現(xiàn)場“儲藏”起來狮惜,等以后恢復(fù)現(xiàn)場后繼續(xù)工作,git status 是干凈的)
$ git stash
$ git stash list
$ git stash pop (回復(fù)工作現(xiàn)場碌识;等于下面2條指令)
$ git stash apply(恢復(fù))
$ git stash drop(刪除stash內(nèi)容)
9.本地分支關(guān)聯(lián)遠(yuǎn)程倉庫分支
$ git branch --set-upstream "branch-name" origin/"branch-name" (本地和遠(yuǎn)程都有分支碾篡,未關(guān)聯(lián))
$ git checkout -b "branch-name" origin/"branch-name"(遠(yuǎn)程有分支時,在本地新建分支時關(guān)聯(lián)遠(yuǎn)程分支)
$ git push origin "branch-name" (遠(yuǎn)程沒有分支時筏餐,在本地分支push時創(chuàng)建新分支)
10.拉取遠(yuǎn)程倉庫文件
$ git pull
高級使用
很多Git命令只有那些專家才明白开泽,這些命令可能你一輩子都不會用到。既然Git是一個工具魁瞪,就沒必要把時間浪費在那些“高級”但幾乎永遠(yuǎn)不會用到的命令上穆律。一旦你真的非用不可了惠呼,到時候再自行Google或者請教專家也未遲。
github相關(guān)使用
創(chuàng)建一個遠(yuǎn)程倉庫
-
新建一個倉庫
-
你的本地Git倉庫和GitHub倉庫之間的傳輸是通過SSH加密的峦耘,需要添加SSH Key公鑰
獲取 SSH Key
~/.ssh目錄罢杉,里面有id_rsa和id_rsa.pub兩個文件,這兩個就是SSH Key的秘鑰對贡歧,id_rsa是私鑰,不能泄露出去赋秀,id_rsa.pub是公鑰利朵,可以放心地告訴任何人
$ cd ~/
$ ssh-keygen -t rsa -C "youremail@example.com" (提示你輸入密碼,沒必要輸入密碼只需一直回車即可)
$ cd ~/.ssh
$ cat id_rsa.pub (然后直接選定copy)
參與別人的開源項目
Fork任意開源倉庫猎莲;
自己擁有Fork后的倉庫的讀寫權(quán)限绍弟;
可以推送pull request給官方倉庫來貢獻代碼。(你可以fork我的倉庫試一把pull request)