1.Linux基礎知識
-
為什么要學習Linux
+ 因為后所需要用到的工具是基於Linux平台所使用的工具。
-
很難學嗎?
+ 不難就是些命令。
-
什么是Linux
+ `Linux作者:林納斯·托瓦茲` 林納斯·本納第克特·托瓦茲(Linus Benedict Torvalds, 1969年~ ),著名的電腦程序員、黑客。Linux內核的發明人及該計划的合作者。 托瓦茲利用個人時間及器材創造出了這套當今全球最流行的操作系統(作業系統)內核之一。現受聘於開放源代碼開發實驗室(OSDL:Open Source Development Labs, Inc),全力開發Linux內核。 Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟件、應用程序和網絡協議。 它支持32位和64位硬件。Linux繼承了Unix以網絡為核心的設計思想,是一個性能穩定的多用戶網絡操作系統。 Linux操作系統誕生於1991 年10 月5 日(這是第一次正式向外公布時間)。Linux存在着許多不同的Linux版本,但它們都使用了Linux內核。 Linux可安裝在各種計算機硬件設備中,比如手機、平板電腦、路由器、視頻游戲控制台、台式計算機、大型機和超級計算機。 嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU 工程各種工具和數據庫的操作系統`
-
如何模擬Linux
-
我們需要通過gitBash工具模擬Linux
-
gitBash下載地址:下載地址
-
Windows安裝:
-
下載Git客戶端軟件,和普通軟件安裝方式一樣。
-
-
Linux安裝
-
CentOS發行版:sudo yum install git
-
Ubuntu發行版:sudo apt-get install git
-
-
Mac安裝
-
打開Terminal直接輸入git命令,會自動提示,按提示引導安裝即可。
-
-
-
如何學習更多的Git知識
2.Shell
-
什么是shell
+ 在計算機科學中,Shell俗稱殼,用來區別於Kernel(核),是指“提供使用者使用界面”的軟件(命令解析器)。 它類似於DOS下的command和后來的cmd.exe。它接收用戶命令,然后調用相應的應用程序。
-
shell分類
+ 圖形界面shell: 通過提供友好的可視化界面,調用相應應用程序,如windows系列操作系統,Linux系統上的圖形化應用程序GNOME、KDE等。 + 命令行shell:通過鍵盤輸入特定命令的方式,調用相應的應用程序,如windows系統的cmd.exe、Windows PowerShell,Linux系統的Bourne shell ( sh)、Bourne Again shell ( bash)等
-
shell命令
-
就是圍繞增刪查改
-
+ pwd (Print Working Directory) 查看當前目錄
+ cd (Change Directory) 切換目錄,如 cd /etc
+ ls (List) 查看當前目錄下內容,如 ls -al,“.”(表示當前目錄)和“..”(表示當前目錄的父目錄)。
+ mkdir (Make Directory) 創建目錄,如 mkdir blog
+ touch 創建文件,如 touch index.html
+ echo >>追加文件 >重新添加一行
+ wc (Word Count) 字數信息統計,如 wc index.html
+ cat 查看文件全部內容,如 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) 復制文件,cp index.html ./demo/index.html
+ head 查看文件前幾行,如 head -5 index.html
+ tail 查看文件后幾行 –n –f,如 tail index.html、tail -5 index.html
+ history 查看操作歷史
+ whoami 查看當前用戶
3.Git簡單介紹
-
什么是Git
-
Git是一款源代碼管理工具(版本控制工具)
-
什么又是源代碼:凡是由我們手寫的代碼都稱之為源代碼
-
源代碼有必要管理起嗎?
-
有必要,因為人工的去處理不同的版本,做相應備份會比較麻煩。
-
Git是linux之父當年為了維護linux---linus之前也是手動維護合並把文件發給Linus
-
-
-
集中式和分布式
-
集中式:Svn
-
分布式:Git
-
4.Git命令使用
-
Git初次使用添加用戶名和郵箱
-
配置用戶名:
git config --global user.name "你的用戶名"
-
配置郵箱 :
git config --global user.email "你的郵箱"
-
刪除錯誤配置 :
git config --global --unset "錯誤的key刪除掉"
-
查看配置 :
git config --list
-
去任何一家公司現完成上面的步驟
-
-
初始化一個空的倉儲
-
初始化空倉儲:
git init
-
這個命令會在當前目錄中新建一個隱藏的名為.git的文件夾,里面存儲的是項目的各個版本。
-
千萬不要更改.git目錄里文件。
-
-
查看當前目錄文件的狀態
-
命令 :
git status
-
查看當前工作目錄的狀態,是已經放到暫存區,還是提交到倉庫了。
-
-
或命令:
git status -s
查看簡要的狀態信息
-
-
將文件添加到暫存區
-
命令:
git add ./file.txt
-
將當前目錄中的file.txt添加到暫存區
-
-
或者:
git add .
-
表示將當前目錄所有文件都添加的暫存區.
-
這是批量添加.
-
-
+ 可以對文件執行多次add命令,都會把最新的修改添加到暫存,但是,后頁面執行add命令,會把前面執行add命令添加到暫存區的文件覆蓋(相同的文件會覆蓋)
-
將文件添加到倉儲中
-
命令 :
git commit -m "這次我添加了一個變量"
-
-m 表示需要指定一個字符串,表示本次提交的代碼與上一次相比多了哪些功能,或者是做了哪些修改。
-
每次提交時都需要寫上相應的字符串以做出說明
-
-
或命令:
git commit -m -c
-
-c 表示可以在提交時,不提供說明。
-
不推薦這么做,不利於后期代碼維護
-
提交時只是提交暫存區的代碼,沒有添加到暫存區的代碼不會提交
-
-
-
查看日志
-
命令:
git log
-
或命令:
git log --oneline
-
以圖形化查看:
git log –graph
-
-
忽略文件
-
不要省略/ 除非有必要
-
需要新建一個名為: .gitignore 的文件
-
這個文件話.git同級目錄.
-
該文件用來告訴我們的git哪些文件不要被添加一倉儲中。
-
忽略某個目錄: /node_modules
-
忽略某個文件: /css/my.css
-
忽略某一類文件: /css/*.css
-
忽略目錄下所有文件: .
-
忽略所有名為node_modules的目錄: node_modules
-
#號表示注釋
-
-
-
版本回退
-
命令:
git reset --hard Head
-
回到最近一次提交的版本的文件狀態
-
git指向的是上一次提交
-
'git reset --hard Head^^ 表示回到最近往前第二次的提交'
-
Head后面的^表示回退到第幾次
-
-
命令:
git reset --hard Head~1
-
表示回到最近一次提交的前一次提交.
-
Head~2,回退到最近一次提交的前2次提交.
-
-
命令:
git reset --hard [版本號]
-
示例:
git reset --hard 12dad211
-
回退到某個具體的版本。
-
可以配合git reflog命令查看歷史操作來進行回退
-
-
這里進行版本回退,並不會對文件進行真實的刪除
-
通過git reflog 可以查看到每一次對版本的切換來提交。
-
-
-
創建Git分支,並切換分支
-
正在做功能呢,才做了一半,但是為了不丟失代碼要提交,又不能影響別人工作。
-
查看有多少分支
-
git branch
-
-
命令: git branch dev
-
創建了一個名為dev的分支
-
-
命令: git checkout dev
-
切換到dev分支
-
-
創建並切換到指定分支
-
git checkout -b dev
-
-
-
合並Git分支
-
畫圖
-
命令: git merge dev
-
表示將當前分支與dev分支合並
-
在主分支下執行合並命令.
-
-
命令: git branch -d dev
-
表示刪除dev分支,當合並分支后,如果不需要再使用dev分支,則可以直接刪除。
-
不要在dev分支執行這個命令,在別的的分支執行.
-
-
-
解決沖突
-
應該是如何合並沖突。
-
沖突是不可避免的。
-
當在新功能完成后合並前,修改並提交了主分支對應的文件,合並時兩個分支中的文件有沖突。
-
手動修改文件,然后提交
-
5.Git原理以及常用步驟
-
Git內部結構
-
為了更好的學習Git,我們們必須了解Git管理我們文件的3種狀態,分別是已
提交(committed)、已修改(modified)和已暫存(staged)
,由此引入 Git 項目的三個工作區域的概念:Git 倉庫、工作目錄以及暫存區域。 Git倉庫目錄是Git用來保存項目的元數據和對象數據庫的地方。 這是Git 中最重要的部分,從其它計算機克隆倉庫時,拷貝的就是這里的數據。 工作目錄是對項目的某個版本獨立提取出來的內容。 這些從Git倉庫的壓縮數據庫中提取出來的文件,放在磁盤上供你使用或修改。 暫存區域是一個文件,保存了下次將提交的文件列表信息,一般在Git倉庫目錄中。有時候也被稱作“索引”(Index),不過一般說法還是叫暫存區域。 -
基本的Git工作流程如下:
-
1、在工作目錄中修改文件。
-
2、暫存文件,將文件的快照放入暫存區域。
-
3、提交更新,找到暫存區域的文件,將快照永久性存儲到Git倉庫目錄。
-
-
-
git本地基本操作步驟
-
1.新建一個項目文件夾,進行文件夾中,打git bash執行命令:
git init
-
初始化一個git倉儲,其實就是一個隱藏的.git文件夾
-
不要輕易改變里面文件
-
-
2.開始新文件,寫我們的代碼,寫完一個功能,執行命令:
git add [文件路徑]
-
示例:
git add ./READEME.md
-
表示要把相應的文件添加到暫存區,暫存區和倉儲其實都在.git目錄中
-
批量添加
git add .
或者git add *
-
-
3.把添加到暫存區的文件提交到倉儲中.
-
命令:
git commit -m "這時寫類似注釋的東西"
-
注意:在提交之前需要配置個人信息
git config --global user.name "xiaoming"
git config --global user.email "xiaoming@sina.cn"
-
-
4.所有需要備份或者提交的文件及目錄都必須在.git所在目錄。不要超出.git所在目錄
-
x: 在這幾步前后,都可以執行命令:`git status`
-
撤銷操作
-
撤銷已修改狀態 git checkout -- 文件路徑
-
撤銷addgit status 先看一下add 中的文件 git reset HEAD 如果后面什么都不跟的話 就是上一次add 里面的全部撤銷了 git reset HEAD XXX/XXX/XXX.html 就是對某個文件進行撤銷了
-
撤銷 commitgit reset HEAD
-
-
6.Git網上操作
-
gitHub、gitLab和國內的git網站
-
git clone
-
命令:'git clone [倉儲地址]'
-
會把指定倉儲的整個下載來
-
如果不需要下載整個倉儲,只需要最新的一次提交,加上參數--depth
-
-
登錄
-
直接通過賬號密碼登錄,太麻煩了
-
通過SSH登錄,不用在輸入用戶名和密碼
-
1.在任意位置輸入 ssh-keygen -t rsa 創建rsa密鑰
-
2.將rsa密鑰給網站
-
3.選clone路徑的時候選擇ssh登錄
-
-
-
push(推送)
-
命令:
git push [地址] master
-
或命令:
git push origin master
-
-
pull(拉回)
-
命令:
git pull [地址] master
-
或命令:
git pull origin master
-
-
remote命令使用
-
git remote add “主機名稱” “遠程倉庫地址”添加遠程主機,即給遠程主機起個別名,方便使用
-
git remote rm“主機名稱” 命令用於刪除遠程主機。
-
git remote 可以查看已添加的遠程主機
-
git remote show “主機名稱”可以查看遠程主機的信息
-
7.雜項
http://www.crx4chrome.com/
http://owo.help
hash值或者稱為sha值