5.2經常使用命令github
版本控制器:數據庫
CVS/SVN/Git瀏覽器
SVN:bash
客戶端/服務器服務器
GIT:網絡
客戶端/代碼託管網站(例如:github)編輯器
注意1:相似的代碼託管網站還有:github/碼雲/阿里雲Code源碼管理分佈式
注意2:相似的技術GitLab,但它與GitHub又有必定的區別
GitLab和GitHub同樣屬於第三方基於Git開發的做品,免費且開源。與Github相似,能夠註冊用戶,任意提交你的代碼,添加SSHKey等等。
不一樣的是,GitLab是能夠部署到本身的服務器上,數據庫等一切信息都掌握在本身手上,適合團隊內部協做開發,
你總不可能把團隊內部的智慧總放在別人的服務器上吧?簡單來講可把GitLab看做我的版的GitHub。
GitHub是一個開源的代碼託管平臺,使用GitHub能夠查看別人的項目、能夠創建靜態網頁、能夠管理插件、能夠在線編譯、能夠託管代碼等等。
一、去中心化
GIT是分佈式的,SVN不是:這是GIT和其它非分佈式的版本控制系統,例如SVN,CVS等,最核心的區別。
二、git倉庫的任何一個拷貝均可以獨立做爲一個服務器來使用
三、在Git中文件有四種狀態:
未跟蹤(untrack):表示文件爲新增長的
已修改(modified):表示修改了文件,但還沒保存到git倉庫中。
已暫存(staged):表示對一個已修改文件的當前版本作了標記,使之包含在下次提交的快照中
已提交(committed):表示文件已保存在git倉庫中。
四、其它
GIT沒有一個全局的版本號,而SVN有:目前爲止這是跟SVN相比GIT缺乏的最大的一個特徵。
GIT的內容完整性要優於SVN:GIT的內容存儲使用的是SHA-1哈希算法。這能確保代碼內容的完整性,確保在遇到磁盤故障和網絡問題時下降對版本庫的破壞
五、直接記錄快照,而非差別
GIT把內容按元數據方式存儲,而SVN是按文件:全部的資源控制系統都是把文件的元信息隱藏在一個相似.svn,.cvs等的文件夾裏。
直接記錄快照,而非差別
六、直接記錄快照,而非差別
GIT分支和SVN的分支不一樣,分支在SVN中一點不特別,就是版本庫中的另外的一個目錄。
建立公庫test224_pub
這裏谷歌瀏覽器能夠自動翻譯成中文
建立私有倉庫text224
成功:
建立文件夾
建立成功
刪除倉庫
下載地址:
這裏有博主下載好的安裝包:
連接: https://pan.baidu.com/s/1vbEbN1X7oHYbOM29nO-r0A 提取碼: jkbr
點擊Next>選擇要安裝的文件夾目錄
建立開始菜單目錄名稱,默認git,不須要修改
選擇git使用的編輯器
行末換行符轉換,使用默認值
安裝
檢測安裝成功,任意窗口或桌面均可以右鍵,出現下面兩個選項便可
點擊Git bash here打開命令窗口
查看git的配置列表
git config --list
設置用戶名/郵箱/密碼
git config --global user.name "username" --雙引號中的本身
git config --global user.email "email"
git config --global user.password "password"
git文件狀態與工做區域
git的文件狀態是其git核心內容,瞭解後對後續的操做有莫大的幫助,不一樣的文件狀態又存儲在不一樣的工做區域中。
1.文件狀態
未跟蹤(untrack):表示文件爲新增長的
已修改(modified):表示修改了文件,但還沒保存到git倉庫中。
已暫存(staged):表示對一個已修改文件的當前版本作了標記,使之包含在下次提交的快照中
已提交(committed):表示文件已保存在git倉庫中。
2.工做區域
2.1本地計算機
Working Directory(工做目錄):即正在編輯的文件狀態。文件狀態爲未跟蹤(untrack)和已修改(modified)在此區域內。
Staging Area(暫存區):保存了下次將提交的文件列表信息。文件狀態爲已暫存(staged)在此區域內。
Repository(本地倉庫):提交到本地倉庫的文件。
2.2遠程計算機
Repository(遠程倉庫):已提交到遠程計算機內的文件。
git clone :將遠程倉庫clone到本地計算機。
git status :展現工做區及暫存區域中不一樣狀態的文件。
git add :將內容從工做目錄添加到暫存區。
git commit :全部經過 git add 暫存的文件提交到本地倉庫。
git push :將本地倉庫的記錄提交到遠程倉庫。
git reset HEAD <file> :從暫存區移除指定文件。
git checkout -- <file> :從本地倉庫恢復指定文件。
git pull :拉取遠程倉庫的數據。
git init
1.取得項目的Git倉庫(從github現有倉庫克隆)url改成本身的倉庫地址;
git clone https://github.com/haungting/t224_pub.git --克隆一個倉庫
查看初始狀態
cd進入倉庫,運行 git status
進入下載項目目錄,用ls -ah命令若是命令竄顯示.git目錄,就表示已經克隆成功,而且該目錄已是git能夠管理的倉庫了
添加一個文件
添加一個huang.txt文件t
注意:若是文件上方有個 "Untracked files",表示這個文件「未跟蹤」
新建立的文件添加到「暫存區」
git add huang.txt --把新建立的add.txt提交到「暫存區」
而後運行 git status
注1:文件上方有說明使用 git reset HEAD <file> 可從暫存區移除指定文件。
「暫存區」的內容提交到「本地倉庫」
執行 git commit,將「暫存區」的內容提交到「本地倉庫」,執行後運行 git status
要輸入「提交說明」的話就須要
1.按鍵盤字母 i 進入insert模式
2.修改最上面那行黃色合併信息,能夠不修改
3.按鍵盤左上角"Esc"
4.輸入":wq",注意是冒號+wq,按回車鍵便可
「本地倉庫」的內容提交到「遠程倉庫」
執行 git push,將「本地倉庫」的內容提交到「遠程倉庫」,執行後運行 git status
遠程倉庫也有了
衝突的意思也就是:
好比小黃和小王同時修改了同一個文件而小黃已經push到github上,小王也要提交至遠程倉庫,致使發生衝突
首先小黃提交了而且成功了
如今小王也要提交結果致使衝突
從遠程倉庫pull代碼至本地,再修改衝突代碼 git pull
注意:git status查看倉庫狀態,會顯示紅色的錯誤提示消息「 both modified: 衝突.txt」
打開 衝突.txt,手動修改衝突部分的代碼
哈哈哈哈哈哈哈哈哈哈哈哈
小王改的
小黃改的
注意:<<<<<<< HEAD >>>>>>>之間的即爲衝突的代碼,手動修改便可
依次add/commit/push代碼至遠程倉庫
commit執行完成,從新查看倉庫狀態git status,紅色的錯誤提示消息「 both modified: 衝突.txt」
若是沒有就成功啦
謝謝觀看!