C++:22 再議const的作用(上)
Git
Git 不僅僅是個版本控制系統,它也是個內容管理系統(CMS),工作管理系統等。
- 每個人都擁有全部的程式碼
- 所有版本資訊倉庫全部同步到本地的每個使用者,本地檢視所有版本歷史
- 離線在本地提交,只需在連網時push到相應的伺服器或其他使用者那裡。
- 只要有一個使用者的裝置沒有問題就可以恢復所有的資料
- 增加了本地儲存空間的佔用
Linux 的締造者 Linus Torvalds基於使用 BitKeeper 時的經驗教訓,開發出自己的版本系統。
Linux和Git之父李納斯·託沃茲(Linus Benedic Torvalds)1969、芬蘭
Git工作流程
般工作流程如下:
- 克隆 Git 資源作為工作目錄。
- 在克隆的資源上新增或修改檔案。
- 如果其他人修改了,你可以更新資源。
- 在提交前檢視修改。
- 提交修改。
- 在修改完成後,如果發現錯誤,可以撤回提交併再次修改並提交。
Git 工作區,暫存庫1,版本庫
- 工作區:就是你在電腦裡能看到的目錄。
- 暫存區:英文叫 stage 或 index。一般存放在 .git 目錄下的 index 檔案(.git/index)中,所以我們把暫存區有時也叫作索引(index)。
- 版本庫:工作區有一個隱藏目錄 .git,這個不算工作區,而是 Git 的版本庫。
Git操作
Git Bash:Unix與Linux風格的命令列,使用最多,推薦最多
Git CMD:Windows風格的命令列
Git GUI:圖形介面的Git,不建議初學者使用,儘量先熟悉常用命令
常用的Linux命令
1)、cd : 改變目錄。
2)、cd . . 回退到上一個目錄,直接cd進入預設目錄
3)、pwd : 顯示當前所在的目錄路徑。
4)、ls(ll): 都是列出當前目錄中的所有檔案,只不過ll(兩個ll)列出的內容更為詳細。
5)、touch : 新建一個檔案 如 touch index.js 就會在當前目錄下新建一個index.js檔案。
6)、rm: 刪除一個檔案, rm index.js 就會把index.js檔案刪除。
7)、mkdir: 新建一個目錄,就是新建一個資料夾。
8)、rm -r : 刪除一個資料夾, rm -r src 刪除src目錄
rm -rf / 切勿在Linux中嘗試!刪除電腦中全部檔案!
9)、mv 移動檔案, mv index.html src index.html 是我們要移動的檔案, src 是目標資料夾,當然, 這樣寫,必須保證檔案和目標資料夾在同一目錄下。
10)、reset 重新初始化終端/清屏。
11)、clear 清屏。
12)、history 檢視命令歷史。
13)、help 幫助。
14)、exit 退出。
15)、#表示註釋
Git 操作命令
Git 的工作就是建立和儲存你專案的快照及與之後的快照進行對比。
本章將對有關建立與提交你的專案快照的命令作介紹。
Git 常用的是以下 6 個命令:git clone、git push、git add 、git commit、git checkout、git pull,後面我們會詳細介紹。
說明:
- workspace:工作區
- staging area:暫存區/快取區
- local repository:或本地倉庫
- remote repository:遠端倉庫
一個簡單的操作步驟:
$ git init
$ git add .
$ git commit
- git init - 初始化倉庫。
- git add . - 新增檔案到暫存區。
- git commit - 將暫存區內容新增到倉庫中。
建立倉庫命令
下表列出了 git 建立倉庫的命令:
命令 | 說明 |
---|---|
git init |
初始化倉庫 |
git clone |
拷貝一份遠端倉庫,也就是下載一個專案。 |
提交與修改
Git 的工作就是建立和儲存你的專案的快照及與之後的快照進行對比。
下表列出了有關建立與提交你的專案的快照的命令:
命令 | 說明 |
---|---|
git add |
新增檔案到倉庫 |
git status |
檢視倉庫當前的狀態,顯示有變更的檔案。 |
git diff |
比較檔案的不同,即暫存區和工作區的差異。 |
git commit |
提交暫存區到本地倉庫。 |
git reset |
回退版本。 |
git rm |
刪除工作區檔案。 |
git mv |
移動或重新命名工作區檔案。 |
提交日誌
命令 | 說明 |
---|---|
git log |
檢視歷史提交記錄 |
git blame <file> |
以列表形式檢視指定檔案的歷史修改記錄 |
遠端操作
命令 | 說明 |
---|---|
git remote |
遠端倉庫操作 |
git fetch |
從遠端獲取程式碼庫 |
git pull |
下載遠端程式碼併合並 |
git push |
上傳遠端程式碼併合並 |
Git分支管理
有人把 Git 的分支模型稱為必殺技特性,而正是因為它,將 Git 從版本控制系統家族裡區分出來。
建立分支命令:
git branch (branchname)
切換分支命令:
git checkout (branchname)
當你切換分支的時候,Git 會用該分支的最後提交的快照替換你的工作目錄的內容, 所以多個分支不需要多個目錄。
合併分支命令:
git merge
你可以多次合併到統一分支, 也可以選擇在合併之後直接刪除被併入的分支。