工具配置之MAC端Git安裝以及環(huán)境搭建

轉(zhuǎn)載注明出處:http://www.reibang.com/p/864fd9be14d5

Git安裝

下載Git有兩種方法

  • 直接下載安裝包夸盟,Git下載地址
  • 用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 --global user.name "your_name"  
git config --global user.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)端倉(cāng)庫(kù)時(shí)候需要提供公鑰,本地保存私鑰钙畔,每次與遠(yuǎn)端倉(cāng)庫(kù)交互時(shí)候茫陆,遠(yuǎn)端倉(cāng)庫(kù)會(huì)用公鑰來(lái)驗(yàn)證交互者身份。使用以下指令生成密鑰擎析。

ssh-keygen -t rsa -C "your_email@youremail.com"

生成密鑰后盅弛,在本地的/Users/當(dāng)前電腦用戶/.ssh目錄下會(huì)生成兩個(gè)文件id_rsaid_rsa.pub叔锐,id_rsa文件保存的是私鑰挪鹏,保存于本地,id_rsa.pub文件保存的是公鑰愉烙,需要將里面內(nèi)容上傳到遠(yuǎn)端倉(cāng)庫(kù)讨盒。

獲取公鑰字符串具體操作如下圖。

獲取公鑰
  • 輸入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)端倉(cāng)庫(kù)添加密鑰

以GitHub為例子蔗包,向遠(yuǎn)端倉(cāng)庫(kù)添加公鑰秉扑,上面已經(jīng)獲取到了公鑰,只需要將公鑰添加到遠(yuǎn)端倉(cāng)庫(kù)就可以了调限。

添加公鑰

在個(gè)人設(shè)置頁(yè)面舟陆,左邊選中SSH and GPG keys,在右邊添加公鑰耻矮,title是key的名稱秦躯,可以隨便取,可更改裆装,key是上面我們獲取到的公鑰踱承,填寫完畢后點(diǎn)擊add SSH key按鈕倡缠,這樣遠(yuǎn)端就添加到了密鑰。

本地關(guān)聯(lián)遠(yuǎn)端倉(cāng)庫(kù)

  • 在本地文件夾下面執(zhí)行git init指令茎活,初始化文件夾昙沦,作為本地的一個(gè)倉(cāng)庫(kù)。
  • 執(zhí)行git remote add origin 倉(cāng)庫(kù)的ssh鏈接
  • 執(zhí)行git pull指令妙色,將遠(yuǎn)端代碼拉取到本地

執(zhí)行完畢后桅滋,遠(yuǎn)端倉(cāng)庫(kù)代碼已經(jīng)同步到了本地。

常用Git指令

  • 初始化配置

    git config —global user.name “XXX"
    git config --global user.email “XXXX"
    
  • 設(shè)置大小寫敏感

    git config core.ignorecase false
    
  • 生成密鑰
    ssh-keygen -t rsa -C “your_email”

  • 將遠(yuǎn)端代碼clone到本地目錄
    git clone <遠(yuǎn)端git> <本地目錄>

  • 提交修改

    git add <文件> // 將有修改的文件添加到本地緩存中 git add . 是添加所有修改
    git commit -m "本次修改信息" // 提交本次修改身辨,一般是在git add之后操作
    git reset . // 撤銷add
    git rm --cached . // 撤銷add
    
  • 切換分支

    git checkout <branch_name>

  • 以當(dāng)前分支為藍(lán)本新建分支并切換到新分支

    git checkout -b <branch_name>

  • 當(dāng)前分支合并其他分支
    git merge <branch_name>

  • 遠(yuǎn)端新建分支丐谋,其實(shí)就是將本地分支推送至遠(yuǎn)端
    git push origin <local_branch_name>:<remote_branch_name>

  • 刪除遠(yuǎn)端分支,其實(shí)就是推送了一個(gè)空的分支到遠(yuǎn)端覆蓋了原來(lái)的遠(yuǎn)端分支
    git push origin :<remote_branch_name>

  • 從遠(yuǎn)端拉取分支煌珊,并建立對(duì)應(yīng)關(guān)系

    git checkout -b <local_branch_name> origin/<remote_branch_name>
    // 或者
    git branch —track <local_branch_name> origin/<remote_branch_name>
    
  • 本地已經(jīng)存在的分支和遠(yuǎn)端分支建立對(duì)應(yīng)關(guān)系
    git branch —set-upstream <local_branch_name> origin/<remote_branch_name>

  • 添加遠(yuǎn)端庫(kù)

    git remote add <遠(yuǎn)端庫(kù)代稱> <遠(yuǎn)端庫(kù)地址>
    git clone <遠(yuǎn)端庫(kù)地址> <目錄>   //不需要git init
    
  • 回滾到某一個(gè)提交版本

    git reset --hard/soft <commit_id> // 回滾到某一個(gè)版本
    git reset --hard/soft HEAD~<num> // 回滾num個(gè)提交
    git revert <merge_commit_id> -m number // 撤銷某一次merge号俐,number是指分支,1-代表merge的目標(biāo)分支 2-代表被merge的分支
    git revert HEAD~2..HEAD // 撤銷最近兩次提交并形成一個(gè)新的commit
    
  • 強(qiáng)制遠(yuǎn)端覆蓋本地

    git fetch --all
    git reset --hard origin/<remote_branch_name>
    
  • 提交日志查看方式

    git log -p 每一次提交具體差異
    git log —stat 顯示文件修改差異定庵,沒顯示具體修改
    git log —graph 樹形狀提交記錄吏饿,可查看分支合并信息
        git log -p filename 查看某個(gè)文件的提交記錄
    
  • git pull —rebase有沖突后,解決沖突蔬浙,使用 git add .然后使用git rebase --continue

  • 切換到某個(gè)分支猪落,將其他分支的某次提交應(yīng)用到該分支

    git checkout <branch_name>
    git cherry-pick <commit id>
    
  • 前者表示把<start-commit-id>到<end-commit-id>之間(左開右閉,不包含start-commit-id)的提交cherry-pick到當(dāng)前分支畴博;后者表示把<start-commit-id>到<end-commit-id>之間(閉區(qū)間笨忌,包含start-commit-id)的提交cherry-pick到當(dāng)前分支。

    git cherry-pick <start-commit-id>..<end-commit-id>
    git cherry-pick <start-commit-id>^..<end-commit-id>
    
  • tag

    • 新建tag
    git tag <tag_name> //輕量標(biāo)簽
    git tag -a <tag_name> -m "tag_msg" // 附注標(biāo)簽
    git tag -a <tag_name> <commint_id> // 給某次提交添加標(biāo)簽
    
    • 刪除tag
    git tag -d <tag_name>
    
    • 查看tag
    git tag // 查看所有tag
    git show <tag_name> // 查看某條tag
    
    • 提交到遠(yuǎn)端
    git push origin <tag_name> // 將某個(gè)tag提交到遠(yuǎn)端
    git push origin –tags // 將所有tag提交到遠(yuǎn)端
    
  • branch相關(guān)指令

    git branch -d <branch_name> // 刪除某個(gè)分支
    git branch -D <branch_name> // 強(qiáng)制刪除某個(gè)分支
    git branch -avv // 查看本地分支與遠(yuǎn)端分支關(guān)系俱病,并且顯示分支最新一次提交信息
    git remote show origin // 查看遠(yuǎn)端分支間關(guān)系
    
  • 刪除未跟蹤文件

    git clean -f // 刪除 untracked files
    git clean -fd // 連 untracked 的目錄也一起刪掉
    

結(jié)束語(yǔ)

本篇粗略的介紹了Git的使用官疲,但是對(duì)于Git內(nèi)部的實(shí)現(xiàn)和一些具體的使用方法,還是需要自己去深入的了解亮隙。關(guān)于Git的詳細(xì)介紹和工作原理途凫,可以查看以下連篇文章。

Git教程溢吻,里面有介紹到Git的工作原理维费,可以仔細(xì)閱讀。

Git Community Book 中文版介紹了Git具體使用煤裙,這本書也是關(guān)于Git的一本好書掩完。

Git練習(xí),實(shí)戰(zhàn)練習(xí)Git的各種指令硼砰。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市欣硼,隨后出現(xiàn)的幾起案子题翰,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件豹障,死亡現(xiàn)場(chǎng)離奇詭異冯事,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)血公,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門昵仅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人累魔,你說我怎么就攤上這事摔笤。” “怎么了垦写?”我有些...
    開封第一講書人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵吕世,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我梯投,道長(zhǎng)命辖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任分蓖,我火速辦了婚禮尔艇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘么鹤。我一直安慰自己终娃,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開白布午磁。 她就那樣靜靜地躺著尝抖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪迅皇。 梳的紋絲不亂的頭發(fā)上昧辽,一...
    開封第一講書人閱讀 49,806評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音登颓,去河邊找鬼搅荞。 笑死,一個(gè)胖子當(dāng)著我的面吹牛框咙,可吹牛的內(nèi)容都是我干的咕痛。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼喇嘱,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼茉贡!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起者铜,我...
    開封第一講書人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤腔丧,失蹤者是張志新(化名)和其女友劉穎放椰,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體愉粤,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡砾医,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了衣厘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片如蚜。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖影暴,靈堂內(nèi)的尸體忽然破棺而出错邦,到底是詐尸還是另有隱情,我是刑警寧澤坤检,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布兴猩,位于F島的核電站,受9級(jí)特大地震影響早歇,放射性物質(zhì)發(fā)生泄漏倾芝。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一箭跳、第九天 我趴在偏房一處隱蔽的房頂上張望晨另。 院中可真熱鬧,春花似錦谱姓、人聲如沸借尿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)路翻。三九已至,卻和暖如春茄靠,著一層夾襖步出監(jiān)牢的瞬間茂契,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工慨绳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掉冶,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓脐雪,卻偏偏與公主長(zhǎng)得像厌小,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子战秋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

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