摘要:git安裝看起來很簡(jiǎn)單,但網(wǎng)上的教程有好多坑酸纲,本文可能有未詳 盡之處璧榄,歡迎留言,作者會(huì)第一時(shí)間回復(fù)
參考文章:[http://blog.csdn.net/xiaohanluo/article/details/53214933]
Git安裝
下載Git有兩種方法
1纤怒、直接下載安裝包,Git下載地址(推薦天通,簡(jiǎn)單快捷)
一開始用的自動(dòng)選擇泊窘,結(jié)果dmg包下載到本地后,雙擊像寒,安裝出錯(cuò)烘豹?
咋辦,兩個(gè)原因诺祸,
一携悯、鏡像錯(cuò)誤(原因:安裝包有問題,沒下載完整啥的筷笨,解決:重新選擇一個(gè)鏡像點(diǎn)下載憔鬼,我選擇了臺(tái)灣的鏡像,如下圖):
二胃夏、權(quán)限設(shè)置不允許安裝轴或,我的mac系統(tǒng)版本OSX10.12.2,解決如下:
2仰禀、用homebrew指令下載照雁,不過首先需要安裝homebrew
在終端執(zhí)行后面指令安裝,homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
完成后答恶,使用以后指令安裝Git饺蚊,
brew install git
安裝好git后,配置用戶名和用戶郵箱悬嗓,以后每次與Git的交互都會(huì)使用該信息污呼。
git config --globaluser.name"your_name"
git config --globaluser.email"your_email@gmail.com"
配置信息可以更改,以后想要更改使用上面指令就可以烫扼。同時(shí)可以使用git config --list
指令查看Git的配置信息曙求。
Git默認(rèn)是大小寫不敏感的,也就是說映企,將一個(gè)文件名某個(gè)字母做了大小寫轉(zhuǎn)換的修改Git是忽略這個(gè)改動(dòng)的悟狱,導(dǎo)致在同步代碼時(shí)候會(huì)出現(xiàn)錯(cuò)誤,所以建議大小把Git設(shè)置成大小寫敏感堰氓。
git config core.ignorecase false
生成密鑰
Git關(guān)聯(lián)遠(yuǎn)端倉庫時(shí)候需要提供公鑰挤渐,本地保存私鑰,每次與遠(yuǎn)端倉庫交互時(shí)候双絮,遠(yuǎn)端倉庫會(huì)用公鑰來驗(yàn)證交互者身份浴麻。使用以下指令生成密鑰。
ssh-keygen -t rsa -C "your_email@youremail.com"
生成密鑰后囤攀,在本地的/Users/當(dāng)前電腦用戶/.ssh目錄下會(huì)生成兩個(gè)文件:
id_rsa软免、id_rsa.pub,
//id_rsa文件保存的是私鑰焚挠,保存于本地膏萧,
//id_rsa.pub文件保存的是公鑰,需要將里面內(nèi)容上傳到遠(yuǎn)端倉庫蝌衔。
獲取公鑰字符串具體操作如下圖榛泛。
上圖命令解釋: 獲取公鑰
輸入cd
指令,進(jìn)入當(dāng)前用戶目錄
輸入ls -a
指令噩斟,查看當(dāng)前用戶目錄下所有文件曹锨,包括隱藏文件
輸入cd .ssh
指令,進(jìn)入.ssh目錄
輸入ls
指令剃允,查看.ssh目錄下的文件
輸入cat id_rsa.pub
指令沛简,查看id_rsa.pub文件中內(nèi)容
遠(yuǎn)端倉庫添加密鑰
以GitHub為例子,向遠(yuǎn)端倉庫添加公鑰斥废,上面已經(jīng)獲取到了公鑰覆享,只需要將公鑰添加到遠(yuǎn)端倉庫就可以了。
添加公鑰
在個(gè)人設(shè)置頁面营袜,左邊選中SSH and GPG keys撒顿,在右邊添加公鑰,title是key的名稱荚板,可以隨便取凤壁,可更改,key是上面我們獲取到的公鑰跪另,填寫完畢后點(diǎn)擊add SSH key按鈕拧抖,這樣遠(yuǎn)端就添加到了密鑰。
本地關(guān)聯(lián)遠(yuǎn)端倉庫
在本地文件夾下面執(zhí)行g(shù)it init指令免绿,初始化文件夾唧席,作為本地的一個(gè)倉庫。
場(chǎng)景一:克隆遠(yuǎn)端到本地
執(zhí)行git remote add origin
倉庫的ssh鏈接
執(zhí)行git pull
指令,將遠(yuǎn)端代碼拉取到本地
執(zhí)行完畢后淌哟,遠(yuǎn)端倉庫代碼已經(jīng)同步到了本地迹卢。
場(chǎng)景二:本地上傳到遠(yuǎn)端
git push origin master
//反正我這一步出錯(cuò)了,咋辦,用強(qiáng)制忽略錯(cuò)誤來上傳
git push origin master -f
// -f 強(qiáng)制執(zhí)行徒仓,忽略所有錯(cuò)誤
然后再看一下遠(yuǎn)端庫里腐碱,是不是新增加了一些本地剛上傳的文件,OK到這里基本就差不多了掉弛。
常用Git指令
初始化配置
git config —globaluser.name "xxx"
git config --global user.email "xxx@163.com"
設(shè)置大小寫敏感
git config core.ignorecase false
生成密鑰
ssh-keygen-trsa-C "xxx@163.com"
將遠(yuǎn)端代碼clone到本地目錄
git clone git@
提交修改
gitadd<文件>// 將有修改的文件添加到本地緩存中 git add . 是添加所有修改git commit -m"本次修改信息"http:// 提交本次修改症见,一般是在git add之后操作git reset .// 撤銷addgit rm--cached . // 撤銷add
切換分支
git checkout
以當(dāng)前分支為藍(lán)本新建分支并切換到新分支
git checkout -b
當(dāng)前分支合并其他分支
git merge
遠(yuǎn)端新建分支,其實(shí)就是將本地分支推送至遠(yuǎn)端
git push origin :
刪除遠(yuǎn)端分支殃饿,其實(shí)就是推送了一個(gè)空的分支到遠(yuǎn)端覆蓋了原來的遠(yuǎn)端分支
git push origin:
從遠(yuǎn)端拉取分支谋作,并建立對(duì)應(yīng)關(guān)系
git checkout -borigin/// 或者git branch —trackorigin/
本地已經(jīng)存在的分支和遠(yuǎn)端分支建立對(duì)應(yīng)關(guān)系
git branch —set-upstreamorigin/
添加遠(yuǎn)端庫
git remote add<遠(yuǎn)端庫代稱><遠(yuǎn)端庫地址>
git clone<遠(yuǎn)端庫地址><目錄>
//不需要git init
回滾到某一個(gè)提交版本
git reset --hard/soft
// 回滾到某一個(gè)版本
git reset --hard/softHEAD~
// 回滾num個(gè)提交
git revert -m number
// 撤銷某一次merge
強(qiáng)制遠(yuǎn)端覆蓋本地
gitfetch--allgitreset--hardorigin/
提交日志查看方式
gitlog-p
每一次提交具體差異
gitlog—stat
顯示文件修改差異,沒顯示具體修改
gitlog—graph
樹形狀提交記錄乎芳,可查看分支合并信息
git pull —rebase
有沖突后遵蚜,解決沖突,使用
git add .
然后使用
git rebase --continue
切換到某個(gè)分支秒咐,將其他分支的某次提交應(yīng)用到該分支
git checkoutgit cherry-pick
表示把到之間(左開右閉谬晕,不包含start-commit-id)的提交cherry-pick到當(dāng)前分支;后者表示把到之間(閉區(qū)間携取,包含start-commit-id)的提交cherry-pick到當(dāng)前分支攒钳。
git cherry-pick..git cherry-pick^.. tag
//新建tag
gittag
//輕量標(biāo)簽
gittag-a-m"tag_msg"
// 附注標(biāo)簽
gittag-a
//給某次提交添加標(biāo)簽
刪除tag
gittag-d
查看tag
gittag
// 查看所有
taggit show
// 查看某條tag
提交到遠(yuǎn)端
git push origin
// 將某個(gè)tag提交到遠(yuǎn)端
git push origin –tags
// 將所有tag提交到遠(yuǎn)端
branch相關(guān)指令
git branch-d
// 刪除某個(gè)分支git branch-D// 強(qiáng)制刪除某個(gè)分支
git branch-avv
// 查看本地分支與遠(yuǎn)端分支關(guān)系,并且顯示分支最新一次提交信息
git remote show origin
// 查看遠(yuǎn)端分支間關(guān)系