之前在windows中一直採用github的桌面版,庫的建立更新都是借助軟體的幫助。所使用的的功能也非常侷限,僅僅只是建立庫再提交自己的**。至於版本管理、回滾、分支以及git的結構都沒有清楚的認識。這次由於任務需要,在ubuntu中必須使用git來鏈結github,所以必須接觸一些git的命令,也對git的思想有了進一步的認識。這裡簡單梳理以下,作為備忘錄。文末也附上我參考的部落格,有興趣的可以進一步閱讀。
一些認識
之前對github和git一直傻傻分不清,以為是兩種不同的版本管理工具。現在才認識到git是一種版本管理工具,而github只是乙個遠端倉庫。實際上沒有github這種遠端倉庫,你計算機中git也會建立乙個本地的倉庫,或者鏈結到其他的遠端倉庫。
1. git的安裝
輸入命令安裝git,並檢視版本以確認安裝成功。
sudo apt-get install git
git --version
2. git的使用
先解釋一些概念,git分四層管理**。
你目錄中的檔案是第一層
快取區,每次add之後,當前目錄中要追蹤的檔案會作為乙個版本會存放在快取區。注意不是所有的檔案。一般乙個檔案生成之後,會標記為「未追蹤」,但是否對其做版本管理還是要選擇的。例如一些編譯檔案就沒有必要追蹤。對需要做版本管理的問件,用add新增,不需要的用clean刪除。
本地倉庫,每次commit之後,快取區最新的版本就會存放在本地倉庫。這裡要提及乙個head的概念。head是當前的版本指向,每次更新或者回退都會修改head的指向,但對倉庫中每乙個版本並不會刪除。所以即使回退到過去還是有機會回到現在的版本的。
遠端倉庫,每次push之後,會將本地倉庫中head所指向的版本存放到遠端倉庫
命令功能
git init
在本地的當前目錄裡初始化git倉庫
git status
檢視當前倉庫的狀態
git add -a
增加目錄中所有的檔案到快取區
git add file
增加相應檔案到快取區
git commit -m "資訊"
將快取區中更改提交到本地倉庫
git log
檢視當前版本之前的提交記錄
git reflog
檢視head的變更記錄,包括回退
git branch -b branch_name
建立乙個新的分支
git diff
檢視當前檔案與快取區檔案的差異
git checkout -- file
取消更改,將快取區的檔案提取覆蓋當前檔案
git reset --hard 版本號
回退到相應版本號,同樣也可以回退到未來的版本號
git clean -xf
刪除當前目錄中所有未追蹤的檔案
git config --global core.quotepath false
處理中文檔名
這些命令用於處理本地倉庫的版本管理足夠了,下面我介紹與遠端倉庫打交道。
2. git與github的鏈結
首先我們認為你已經有乙個github的賬戶。
然後我們要建立ssh鏈結。這是一種通訊的加密協議。我先在我的筆記本上計算一對公鑰和私鑰,將公鑰儲存在github中,這樣本地就可以通過ssh與github展開加密通訊。詳細的內容可以參考ssh原理與運用(一):遠端登入。
建立方法,輸入命令
ssh-keygen -t rsa -c "[email protected]" //雙引號裡面是你的常用郵箱
輸入之後要輸入口令,可以不用輸入直接按「enter」一路確認就可以了。然後在賬戶的根目錄(/或者/home/你的賬戶名,具體取決於你執行上述命令時所採用的賬戶)查詢隱藏目錄.ssh/id_rsa.pub檔案,將當中內容新增到github中。
這樣你就可以通過ssh鏈結到github中了。但是github作為乙個遠端倉庫,你可以鏈結這個倉庫,並保持同步。但是你不能把本地倉庫直接上傳到github中去。所以你應該先在github中建立乙個對應的倉庫,然後再在本地建立乙個倉庫,將兩者進行鏈結,再去寫入檔案執行版本管理。所用到的命令有
git remote add origin [email protected]:/.git
git pull origin master //因為github建立倉庫時會有readme.md檔案,先要拷貝乙份
git push -u origin master //將本地倉庫鏈結到master分支上,你當然可以鏈結到其他分支
git push//上傳你的本地倉庫
還有一種方法不用分兩地建庫再去鏈結。你可以只在github上建庫,然後clone到本地目錄中。
git clone [email protected]:/.git
至於團隊合作中的分支管理,由於現在還用不到,等以後有機會試用在去學習吧。
登陸mysql s MySQL登陸退出
單例項登陸mysql mysql mysql uroot 適合剛安裝後無密碼 mysql uroot p 標準登陸的方法 mysql uroot p password 密碼明文會洩露密碼,一般用於指令碼中,指令碼許可權root 700 多例項登陸mysql mysql s data 3307 mys...
Linux免密登陸
a為本地主機 即用於控制其他主機的機器 b為遠端主機 即被控制的機器server 假如ip為172.24.253.2 a和b的系統都是linux 在a上的命令 ssh keygen t rsa 連續三次回車,即在本地生成了公鑰和私鑰,不設定密碼 ssh root 172 24.253 2 mkdir...
linux免密登陸
首先,需要了解ssh登陸方式原理 1.登陸端需要傳送給被登陸端 ssh請求 2.然後被登陸端傳送給登陸端乙個公鑰 3.登陸端用公鑰加密使用者名稱和密碼,將密文傳送給被登陸端 4,然後被登陸端會用自己的私鑰進行解密,解密成功就可以登陸成功 ssh免密登陸原理 登陸端需要生成一對秘鑰,公鑰和私鑰 公鑰傳...