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

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

==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)前用戶
  • | 管道符可以將多個(gè)命令連接使用,上一次(命令)的執(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ì)算機(jī)之間的加密登錄。
如果要在Windows系統(tǒng)中使用SSH,會用到另一種軟件PuTTY,我們后面用到的Git客戶也集成了SSH
格式:ssh user@host
user 代表真實(shí)存在的用戶 host代表要登錄的遠(yuǎn)程計(jì)算機(jī)
加密技術(shù)
常見有兩種加密技術(shù),分別是對稱性加密和非對稱性加密
SSH屬于后者
非對稱加密算法需要兩個(gè)密鑰來進(jìn)行加密和解密,這兩個(gè)秘鑰分別是公開密鑰(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)
是一種記錄一個(gè)或若干文件內(nèi)容變化,以便將來查閱特定版本修訂情況的系統(tǒng)
本地版本控制系統(tǒng)、集中式版本控制系統(tǒng)、分布式版本控制系統(tǒng)
本地版本控制
借助軟件我們可以記錄下文件的每一次修改
功能比較單一,比如很難實(shí)現(xiàn)多人協(xié)同開發(fā),
集中式VCS
通過單一的集中管理的服務(wù)器,保存所有文件的修訂版本,協(xié)同工作的開發(fā)者都通過客戶端連到這臺服務(wù)器,取出最新的文件或者提交更新。其代表為SVN   
分布式VCS
分布式版本控制系統(tǒng),則不需要中央服務(wù)器,每個(gè)協(xié)同開發(fā)者都擁有一個(gè)完整的版本庫,任何協(xié)同開發(fā)者用的服務(wù)器發(fā)生故障,事后都可以用其它協(xié)同開發(fā)者本地倉庫恢復(fù)。
代表為git

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

三、Git

1、git工作原理

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

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

  • 工作目錄(working Directory)

對項(xiàng)目的某個(gè)版本獨(dú)立提取出來的內(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ì)算機(jī)上所有用戶的所有倉庫

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

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

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

  • git clone 倉庫地址

假如公司已有項(xiàng)目用了Git,那我們就利用克隆

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

查看文件狀態(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次提交時(shí),Git會默認(rèn)幫我們創(chuàng)建了一個(gè)master的分支,并且有指針(HEAD)指到了末端

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

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

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

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

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

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

5、Gitlab

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

6、命令匯總

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

四、bower

基于NodeJS的一個(gè)靜態(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)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容