Pro Git


CH01 入門

Git 中文件的三種狀態(tài)

  • 已提交(committed):表示數(shù)據(jù)已被安全地存入本地數(shù)據(jù)庫中
  • 已修改(modified):表示已經(jīng)改動了文件,但尚未提交到數(shù)據(jù)庫
  • 已暫存(staged):表示對已修改文件的當前版本做出了標識,并將加入下一次要提交的快照中

Git 的基本工作流程
(1) 修改工作目錄中的文件
(2) 暫存文件,將這些文件的快照加入暫存區(qū)
(3) 提交暫存區(qū)中的文件,將快照永久地保存在 Git 目錄中

安裝 Git
Windows:下載安裝包,直接安裝
Ubuntu:$ sudo apt-get install git-all

Git 的首次配置
(1) 設置用戶身份
$ git config --global user.name "John Doe"
$ git config --global user.email John Doe@example.com
(2) 設置個人編輯器
$ git config --global core.editor emacs
(3) 檢查個人設置
$ git config --list
?單獨查看某個鍵的值
$ git config user.name

獲取幫助
$ git help <verb>
$ git <verb> --help
$ man git-<verb>


CH02 Git 基礎

2.1 獲取 Git 倉庫

(1) 在現(xiàn)有目錄中初始化 Git 倉庫
?只需進入項目目錄并輸入:$ git init
(2) 克隆現(xiàn)有倉庫
?自動創(chuàng)建新目錄$ git clone [url]
?克隆到已有目錄$ git clone [url] [dir_name]

2.2 在 Git 倉庫中記錄變更

(1) 查看當前文件狀態(tài)
?$ git status
(2) 跟蹤新文件
?$ git add [file_name]
(3) 暫存已修改的文件
?$ git add [modify_file_name]
?把 git add 命令看成“添加內(nèi)容到下一次提交中”
(4) 顯示更簡潔的狀態(tài)信息
?$ git status -s
(5) 忽略文件
?編輯文件.gitignore文件,可參考 https://github.com/github/gitignore
(6) 查看已暫存和位暫存的變更
?$ git diff 將當前工作目錄下的內(nèi)容與暫存區(qū)的內(nèi)容作對比
?$ git diff --staged 查看哪些已暫存的內(nèi)容會進入下一次提交
?$ git diff --cached 查看當前已暫存的更改(與 staged 等效)
(7) 提交變更
?$ git commitgit commit -m "message"
(8) 跳過暫存區(qū)
?$ git commit -a
(9) 移除文件
?$ git rm [file_name] 把文件從暫存區(qū)移除
?$ git rm --cached [file_name] 把文件保存在工作目錄,但從暫存區(qū)移除該文件
(10)移動文件(重命名)
$ git mv file_from file_to

2.3 查看提交歷史

$ git log
$ git log -p -2
-p,顯示出每次提交所引入的差異;
-2 參數(shù),只輸出最近的兩次提交
$ git log --stat 查看每個提交的簡要統(tǒng)計信息
$ git log --pretty=oneline
--pretty,更改日志輸出的默認格式
$ git log --pretty=format:"%h - %an, %ar : %s"
$ git log --graph
--graph 選項會用 ASCII 字符形式的簡單圖表來顯示 Git 分支和合并歷史。、

2.4 撤銷操作

$ git commit --amend 修改、修訂上次提交
$ git reset HEAD filename 撤銷己暫存的文件
$ git checkout -- filename 撤銷對文件的修改

2.5 遠程倉庫的使用


CH03 Git 分支機制

3.1 分支機制簡述

Git 的分支只不過是一個指向每次提交的輕量級的可移動指針。Git 的默認分支名稱是 master。

$ git branch branch_name 創(chuàng)建新分支
$ git checkout branch_name 切換分支

3.2 基本的分支與合并操作

$ git checkout -b branch_name 創(chuàng)建并切換到新分支
$ git merge branch_name 將 branch_name 分支合并到當前分支
$ git mergetool 圖形化沖突處理解決工具

3.3 分支管理

$ git branch 獲得當前所有分支簡短列表
-v 查看每個分支上的最新提交
-- merged 篩選已并入當前分支的所有分支
--no-merged 篩選尚未并入當前分支的所有分支

$ git branch -d branch_name 刪除分支
-D 強制刪除

3.4 與分支有關(guān)的工作流

長期分支
主題分支

3.5 遠程分支

$ git fetch origin 與服務器同步

$ git push (origin) (branch) 推送本地分支到遠程倉庫

$ git checkout --track [remotename]/[branch] 跟蹤遠程分支

$ git branch -vv 查看已經(jīng)設置了哪些跟蹤分支

$ git pull 讀取上游服務器和分支上的數(shù)據(jù),并嘗試將遠程分支上的修改合并到本地

$ git push origin --delete branch_name 刪除遠程分支

$ git rebase branch_name 變基,把某個分支上所有提交的更改在另一個分支上重現(xiàn)一遍。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.1 版本控制 版本控制是一種記錄若干文件內(nèi)容變化,以便查閱特定版本修訂情況的系統(tǒng)。 ——1.1.1 本地版本...
    Cxgoal閱讀 207評論 0 0
  • Git 基礎 2.1 取得項目的Git倉庫 從當前目錄初始化git init 從現(xiàn)有倉庫克隆git clone g...
    Cxgoal閱讀 199評論 0 0
  • 在繼續(xù)了解更專業(yè)的工具前,我們先討論一下 reset 與 checkout。 在你初次遇到的 Git 命令中,這兩...
    大燒鵝閱讀 3,077評論 1 4
  • 1.1 起步-關(guān)于版本控制 什么是版本控制 版本控制是一種記錄一個或若干文件內(nèi)容變化,以便將來查閱特定版本修訂情況...
    我不上簡書寫東西閱讀 171評論 0 0
  • Git基礎 取得項目的 Git 倉庫 git init在現(xiàn)有項目的目錄中初始化新倉庫 git add *.c告訴G...
    NapoleonY閱讀 367評論 0 0

友情鏈接更多精彩內(nèi)容