[TOC]
# 安裝git
Linux下安裝git,并查看版本以確認安裝成功。
```
yum install -y git
git --version
git version 1.8.3.1
```
# git使用
git分四層管理代碼。
1. 目錄中的文件是第一層
2. 緩存區,每次add之后,當前目錄中要追蹤的文件會作為一個版本會存放在緩存區。注意不是所有的文件。一般一個文件生成之后,會標記為“未追蹤”,但是否對其做版本管理還是要選擇的。例如一些編譯文件就沒有必要追蹤。對需要做版本管理的問件,用add添加,不需要的用clean刪除。
3. 本地倉庫,每次commit之后,緩存區最新的版本就會存放在本地倉庫。這里要提及一個HEAD的概念。HEAD是當前的版本指向,每次更新或者回退都會修改HEAD的指向,但對倉庫中每一個版本并不會刪除。所以即使回退到過去還是有機會回到現在的版本的。
4. 遠程倉庫,每次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 | 處理中文文件名|
- [Git和Github簡單教程](http://www.cnblogs.com/schaepher/p/5561193.html)
# git與github的鏈接
1. 首先我們認為你已經有一個github的賬戶。
然后我們要建立SSH鏈接。這是一種通訊的加密協議。我先在我的筆記本上計算一對公鑰和私鑰,將公鑰存儲在github中,這樣本地就可以通過SSH與github展開加密通訊。[詳細的內容可以參考SSH原理與運用(一):遠程登錄。](http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html)
建立方法,輸入命令
```
ssh-keygen -t rsa -C "jiangshan77521@qq.com" //雙引號里面是你的常用郵箱
```
2. 輸入之后要輸入口令,可以不用輸入直接按“enter”一路確認就可以了。然后在賬戶的根目錄(/或者/home/你的賬戶名,具體取決于你執行上述命令時所采用的賬戶)查找隱藏目錄.ssh/id_rsa.pub文件,將當中內容添加到github中。
3. 這樣你就可以通過SSH鏈接到github中了。但是github作為一個遠程倉庫,你可以鏈接這個倉庫,并保持同步。但是你不能把本地倉庫直接上傳到github中去。所以你應該先在github中建立一個對應的倉庫,然后再在本地建立一個倉庫,將兩者進行鏈接,再去寫入文件執行版本管理。所用到的命令有
```
git remote add origin git@github.com:jiangshanwang/studypy.git
git pull origin master //因為github建立倉庫時會有readme.md文件,先要拷貝一份
git push -u origin master //將本地倉庫鏈接到master分支上,你當然可以鏈接到其他分支
git push//上傳你的本地倉庫
```
4. 還有一種方法不用分兩地建庫再去鏈接。你可以只在github上建庫,然后clone到本地目錄中。
```
git clone git@github.com:jiangshanwang/studypy.git
```
