15-Git使用

一、shell和vi

Shell俗稱殼篡腌,用來區(qū)別于Kernel(核)学歧,是指“提供使用者使用界面”的軟件(命令解析器)

1、shell分類

  • 圖形界面shell:通過提供友好的可視化界面茸苇,調(diào)用相應(yīng)應(yīng)用程序排苍,如windows系列操作系統(tǒng),Linux系統(tǒng)上的圖形化應(yīng)用程序GNOME学密、KDE等纪岁。
  • 命令行shell:通過鍵盤輸入特定命令的方式,調(diào)用相應(yīng)的應(yīng)用程序则果,如windows系統(tǒng)的cmd.exe、Windows PowerShell漩氨,Linux系統(tǒng)的Bourne shell ( sh)西壮、Bourne Again shell ( bash)等。

2叫惊、bash和shell

各個 shell 的功能都差不多款青, Linux 默認(rèn)使用 bash。
在window系統(tǒng)下使用bash霍狰,需要一個軟件

==bash命令格式==
命令 [-options] [參數(shù)]

==bash常見命令==
  • pwd (Print Working Directory) 查看當(dāng)前目錄
  • cd (Change Directory) 切換目錄抡草,如 cd /etc
  • ls (List) 查看當(dāng)前目錄下內(nèi)容,如 ls -al
  • mkdir (Make Directory) 創(chuàng)建目錄蔗坯,如 mkdir blog
  • touch 創(chuàng)建文件康震,如 touch index.html
  • cat 查看文件全部內(nèi)容,如 cat index.html
  • more/less 查看文件宾濒,如more /etc/passwd腿短、less /etc/passwd
  • rm (remove) 刪除文件,如 rm index.html、rm -rf blog
  • rmdir (Remove Directory) 刪除文件夾橘忱,只能刪除空文件夾赴魁,不常用
  • mv (move) 移動文件或重命名,如 mv index.html ./demo/index.html
  • cp (copy) 復(fù)制文件钝诚,cp index.html ./demo/index.html
  • head 查看文件前幾行颖御,如 head -5 index.html
  • tail 查看文件后幾行 –n –f,如 tail index.html凝颇、tail -f -n 5 index.html
  • tab 自動補(bǔ)全潘拱,連按兩次會將所有匹配內(nèi)容顯示出來
  • history 查看操作歷史
  • '>' 和 >>重定向
  • curl 網(wǎng)絡(luò)請求,如curl http://www.baidu.com
  • whoami 查看當(dāng)前用戶
  • | 管道符可以將多個命令連接使用祈噪,上一次(命令)的執(zhí)行結(jié)果當(dāng)成下一次(命令)的參數(shù)
  • grep 匹配內(nèi)容泽铛,一般結(jié)合管道符使用

3、vi編輯器

如同Windows下的記事本辑鲤,vi編輯器是Linux下的標(biāo)配盔腔,通過它我們可以創(chuàng)建、編輯文件
三種模式
命令模式月褥、插入模式弛随、底行模式
命令行模式--i/a-->輸入模式
命令行模式--shift+:-->尾函數(shù)模式
vi編輯器的使用
  • 底行模式 : w保存,:w filenme另存為
  • 底行模式 : q退出
  • 底行模式 : wq保存并退出
  • 底行模式 : e! 撤銷更改宁赤,返回到上一次保存的狀態(tài)
  • 底行模式 : q! 不保存強(qiáng)制退出
  • 底行模式 : set nu 設(shè)置行號
  • 命令模式 :  ZZ(大寫)保存并退出
  • 命令模式: u轍銷操作舀透,可多次使用
  • 命令模式:  dd刪除當(dāng)前行
  • 命令模式:  yy復(fù)制當(dāng)前行
  • 命令模式:  p 粘貼內(nèi)容
  • 命令模式:  ctrl+f向前翻頁
  • 命令模式:  ctrl+b向后翻頁
  • 命令模式:  i進(jìn)入編輯模式,當(dāng)前光標(biāo)處插入
  • 命令模式:  a進(jìn)入編輯模式决左,當(dāng)前光標(biāo)后插入
  • 命令模式:  A進(jìn)入編輯模式愕够,光標(biāo)移動到行尾
  • 命令模式:  o進(jìn)入編輯模式,當(dāng)前行下面插入新行
  • 命令模式:  O進(jìn)入編輯模式佛猛,當(dāng)前行上面插入新行

4惑芭、SSH

SSH是一種網(wǎng)絡(luò)協(xié)議,用于計算機(jī)之間的加密登錄继找。
如果要在Windows系統(tǒng)中使用SSH遂跟,會用到另一種軟件PuTTY,我們后面用到的Git客戶也集成了SSH
格式:ssh user@host
user 代表真實存在的用戶 host代表要登錄的遠(yuǎn)程計算機(jī)
加密技術(shù)
常見有兩種加密技術(shù)婴渡,分別是對稱性加密和非對稱性加密
SSH屬于后者
非對稱加密算法需要兩個密鑰來進(jìn)行加密和解密幻锁,這兩個秘鑰分別是公開密鑰(public key,簡稱公鑰)和私有密鑰(private key边臼,簡稱私鑰)哄尔。
工作原理
公鑰和私鑰是成對出現(xiàn),可以通過ssh-keygen -t rsa來創(chuàng)建
免密登錄
  • ssh-keygen -t rsa會創(chuàng)建公鑰和密鑰(默認(rèn)在用戶目錄/.ssh目錄下)
  • ssh-copy-id user@host添加到對應(yīng)遠(yuǎn)程主機(jī)的用戶目錄/.ssh目錄下
  • 也可以登錄遠(yuǎn)程主機(jī)柠并,進(jìn)入到用戶目錄/.ssh目錄下手動創(chuàng)建authorized_keys文件究飞,并將自已的公鑰粘入該文件置谦。

二、版本控制VCS

版本控制(Version Control Systems)
是一種記錄一個或若干文件內(nèi)容變化亿傅,以便將來查閱特定版本修訂情況的系統(tǒng)
本地版本控制系統(tǒng)媒峡、集中式版本控制系統(tǒng)、分布式版本控制系統(tǒng)
本地版本控制
借助軟件我們可以記錄下文件的每一次修改
功能比較單一葵擎,比如很難實現(xiàn)多人協(xié)同開發(fā)谅阿,
集中式VCS
通過單一的集中管理的服務(wù)器,保存所有文件的修訂版本酬滤,協(xié)同工作的開發(fā)者都通過客戶端連到這臺服務(wù)器签餐,取出最新的文件或者提交更新。其代表為SVN   
分布式VCS
分布式版本控制系統(tǒng)盯串,則不需要中央服務(wù)器氯檐,每個協(xié)同開發(fā)者都擁有一個完整的版本庫,任何協(xié)同開發(fā)者用的服務(wù)器發(fā)生故障体捏,事后都可以用其它協(xié)同開發(fā)者本地倉庫恢復(fù)冠摄。
代表為git

==git沒網(wǎng)也可以,svn需要網(wǎng)絡(luò)==

三几缭、Git

1河泳、git工作原理

git三種狀態(tài)
  • 已提交(committed)
  • 已修改(modified)
  • 已暫存(staged)
三個工作區(qū)域
  • Git 倉庫(Repository)

Git用來保存項目的元數(shù)據(jù)和對象數(shù)據(jù)庫的地方

  • 工作目錄(working Directory)

對項目的某個版本獨立提取出來的內(nèi)容

  • 暫存區(qū)域(Staging Area)

保存了下次將提交的文件列表信息,一般在Git倉庫目錄中

Git工作流程
  • 在工作目錄中修改文件
  • 暫存文件年栓,將文件的快照放入暫存區(qū)域
  • 提交文件拆挥,找到暫存區(qū)域的文件,將快照永久性存儲到Git倉庫目錄某抓。

2纸兔、Git本地倉庫

配置用戶
git config --global user.name "自已的名字"
git config --global user.email "自已的郵箱地址"
--global 配置當(dāng)前用戶所有倉庫
--system 配置當(dāng)前計算機(jī)上所有用戶的所有倉庫

注:配置用戶只需要執(zhí)行1次,可以重復(fù)使用否副。

初始化倉庫
需要將現(xiàn)有項目初始化為一個倉庫汉矿,或者將一個已有的使用git進(jìn)行版本控制的倉庫克隆到本地。
  • git init

git init只是創(chuàng)建了一個名為.git的隱藏目錄副编,這個目錄就是存儲我們歷史版本的倉庫,ls -al 可以查看流强。

  • git clone 倉庫地址

假如公司已有項目用了Git痹届,那我們就利用克隆

執(zhí)行完這個命令,會在當(dāng)前目錄下生成一個Monment目錄(默認(rèn)和倉庫名稱相同)打月,這個便是已有一個使用Git管理的項目队腐。

查看文件狀態(tài)
  • git status可以檢測當(dāng)前倉庫文件的狀態(tài)
    ==注:git會忽略空的目錄==

==所以倉庫中的文件夾里要有東西==

添加文件到暫存區(qū)
  • git add 文件名/ 文件路徑 “*”或-A代表所有
  • 放到暫存區(qū)的文件被標(biāo)記成了==綠色==,等待提交奏篙。(不同的工具不一樣)
撤銷更改
  • git status可以再次查看倉庫狀態(tài)
  • 修改的文件會被標(biāo)記==紅色==柴淘。
  • git checkout 文件名可以 回到之前狀態(tài) ==從暫存區(qū)還原原到工作區(qū)==
提交文件
  • git commit -m '備注信息'
  • 將暫存區(qū)被標(biāo)記成綠色的文件迫淹,全部提交到本地倉庫存儲。
查看提交歷史
  • git log查看提交的歷史
  • 按鍵盤q鍵退出
恢復(fù)上次提交的狀態(tài)
  • 通過SHA值可以回到之前某一次的提交
  • git reset --hard c888a614e072e2
Git分支
第1次提交時为严,Git會默認(rèn)幫我們創(chuàng)建了一個master的分支敛熬,并且有指針(HEAD)指到了末端

==指針(HEAD)用來標(biāo)明當(dāng)前處于哪個分支的哪個版本==

  • 創(chuàng)建分支 git branch hotfix
  • 切換分支 git checkout hotfix
  • 刪除分支 git branch -d hotfix

3、Git遠(yuǎn)程倉庫

創(chuàng)建共享倉庫
  • Git要求共享倉庫是一個以.git結(jié)尾的目錄
  • git init ==--bare== 初始化一個共享倉庫第股,也叫裸倉庫
向共享倉庫共享(同步)內(nèi)容
  • 進(jìn)入到y(tǒng)ike目錄
  • git push
從共享倉庫里取出內(nèi)容
  • 新創(chuàng)建一個目錄(模擬另一個開發(fā)者)
  • git clone ./repo.git demo
通過demo倉庫向repo.git共享內(nèi)容

4应民、獲取員遠(yuǎn)程計算機(jī)權(quán)限

生成密匙
  • ssh-keygen -t rsa 然后一路回車,這里會在當(dāng)前用戶生成了一個.ssh的文夾
  • 將id_rsa.pub公鑰的內(nèi)容復(fù)制
  • 打開gitHub的個人中心
  • 打到SSH keys
  • id_rsa.pub公鑰粘貼即可

5夕吻、Gitlab

gitLab是免費(fèi)的管理倉庫的網(wǎng)站程序诲锹,我們可以把它架設(shè)到公司自已的服務(wù)器上,實現(xiàn)倉庫私有化涉馅,這也是大部分公司通常采用的方法归园,其使用方法與gitHub十分相似。

6稚矿、命令匯總

  • git config配置本地倉庫
    • 常用git config --global user.name庸诱、git config --global user.email
  • git config --list查看配置詳情
  • git init 初始一個倉庫,添加--bare可以初始化一個共享(裸)倉庫
  • git status 可以查看當(dāng)前倉庫的狀態(tài)
  • git add“文件” 將工作區(qū)中的文件添加到暫存區(qū)中盐捷,其中file可是一個單獨的文件偶翅,也可以是一個目錄、“*”碉渡、-A
  • git commit -m '備注信息' 將暫存區(qū)的文件聚谁,提交到本地倉庫
  • git log 可以查看本地倉庫的提交歷史
  • git branch查看分支
  • git branch“分支名稱” 創(chuàng)建一個新的分支
  • git checkout“分支名稱” 切換分支
  • git checkout -b deeveloper 新建并切換到developer分支
  • git merge“分支名稱” 合并分支
  • git branch -d “分支名稱” 刪除分支
  • git clone “倉庫地址”獲取已有倉庫的副本
  • git push origin “本地分支名稱:遠(yuǎn)程分支名稱”將本地分支推送至遠(yuǎn)程倉庫,
  • 本地倉庫分支名稱和遠(yuǎn)程倉庫分支名稱一樣的情況下可以簡寫成一個滞诺,即git push “倉庫地址” “分支名稱”形导,如果遠(yuǎn)程倉庫沒有對應(yīng)分支,將會自動創(chuàng)建
  • git remote add “主機(jī)名稱” “遠(yuǎn)程倉庫地址”添加遠(yuǎn)程主機(jī)习霹,即給遠(yuǎn)程主機(jī)起個別名朵耕,方便使用
  • git remote 可以查看已添加的遠(yuǎn)程主機(jī)
  • git remote show “主機(jī)名稱”可以查看遠(yuǎn)程主機(jī)的信息

四、bower

基于NodeJS的一個靜態(tài)資源管理工具淋叶,由twitter公司開發(fā)維阎曹,解決大型網(wǎng)站中靜態(tài)資源的依賴問題。
  • 依賴NodeJS環(huán)境和git工具煞檩。
  • npm install -g bower安裝bower(全局安裝)
  • bower search 查找資源信息
  • bower install 安裝(下載)資源处嫌,通過#號可以指定版本號
  • bower info 查看資源信息
  • bower uninstall 卸載(刪除)資源
  • bower init初始化,用來記錄資源信息及依賴斟湃。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末熏迹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子凝赛,更是在濱河造成了極大的恐慌注暗,老刑警劉巖坛缕,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異捆昏,居然都是意外死亡赚楚,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進(jìn)店門屡立,熙熙樓的掌柜王于貴愁眉苦臉地迎上來直晨,“玉大人,你說我怎么就攤上這事膨俐∮禄剩” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵焚刺,是天一觀的道長敛摘。 經(jīng)常有香客問我,道長乳愉,這世上最難降的妖魔是什么兄淫? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮蔓姚,結(jié)果婚禮上捕虽,老公的妹妹穿的比我還像新娘。我一直安慰自己坡脐,他們只是感情好泄私,可當(dāng)我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著备闲,像睡著了一般晌端。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上恬砂,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天咧纠,我揣著相機(jī)與錄音,去河邊找鬼泻骤。 笑死漆羔,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的狱掂。 我是一名探鬼主播演痒,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼符欠!你這毒婦竟也來了嫡霞?” 一聲冷哼從身側(cè)響起瓶埋,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤希柿,失蹤者是張志新(化名)和其女友劉穎诊沪,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體曾撤,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡端姚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了挤悉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片渐裸。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖装悲,靈堂內(nèi)的尸體忽然破棺而出昏鹃,到底是詐尸還是另有隱情,我是刑警寧澤诀诊,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布洞渤,位于F島的核電站,受9級特大地震影響属瓣,放射性物質(zhì)發(fā)生泄漏载迄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一抡蛙、第九天 我趴在偏房一處隱蔽的房頂上張望护昧。 院中可真熱鬧,春花似錦粗截、人聲如沸惋耙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽怠晴。三九已至,卻和暖如春浴捆,著一層夾襖步出監(jiān)牢的瞬間蒜田,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工选泻, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留冲粤,地道東北人。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓页眯,卻偏偏與公主長得像梯捕,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子窝撵,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,060評論 2 355

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

  • Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照傀顾,而是把代碼倉庫完整的鏡像下來。這樣一來碌奉,任何一處協(xié)同...
    __silhouette閱讀 15,887評論 5 147
  • Git 命令行學(xué)習(xí)筆記 Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照短曾,而是把代碼倉庫完整的鏡像下來...
    sunnyghx閱讀 3,921評論 0 11
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git寒砖,從https:/...
    落魂灬閱讀 12,665評論 4 54
  • 今天兒子的英語課結(jié)束了婉徘。下午的展示課我沒去漠嵌,但是看到視頻了,看到孩子學(xué)得如此棒盖呼,真的很感謝Venday老...
    star衛(wèi)星閱讀 96評論 0 0
  • 今天聊天的主題是關(guān)于RD的愛情儒鹿。 這兩天收到了來自RD的最近圖片,是他和他的女友KT几晤,兩個人的臉上寫滿了幸福挺身。這個...
    Moonlady520閱讀 174評論 0 0