1. 程式人生 > >Git學習系列-Git基本概念

Git學習系列-Git基本概念

修改文件 initial config colspan 信息 stage ati 當前 目錄

本系列基於Pro Git介紹如何使用Git進行源代碼管理,以及後期如何使用Git進行項目管理。

系列初步目錄如下:

1. Git基本概念

2. Git分支操作

後續待定。

Git的歷史就不在這裏進行介紹了,網上隨處都可以找到,以下是在使用Git的時候的一些基本概念和方法

Git有三種狀態,文件可能處於其中之一:已提交(Committed)、已修改(modified)和已暫存(staged).已提交表示數據已經安全的保存在本地數據庫中。已修改表示已經修改了文件,但還沒有保存在數據庫中。已暫存表示對一個已修改文件的當前版本做了標記,使之包含現在下次提交的快照中。 由此引入Git項目的三個工作區域的概念:Git倉庫、工作目錄以及暫存區域 技術分享
初次運行Git之前的配置 通過Git自帶的git config命令來完成Git的初始化工作,配置主要存儲在三個不同位置 /ect/gitconfig文件:包含系統上每一個用戶及倉庫的通用配置,如果使用--system選項時,就會從此文件讀寫配置變量 ~/.gitcongig或~/.config/git/config文件:只針對當前用戶,可以使用--global選項讀寫配置變量 當前使用倉庫的Git目錄中的config文件(就是.git/config文件):針對該倉庫 配置用戶信息
git config --global user.name "John Doe"
git config --global user.email [email protected]
/* */ 檢查配置信息
git config --list查看GIt的所有配置信息或是使用git config <key>來查看特定的信息
初始化倉庫
git init
向倉庫中添加文件並提交
1 git add *.c
2 git add README
3 git commit -m "initial project"
記錄更新到倉庫 使用Git的時候文件的生命周期如下: 技術分享 檢查當前文件狀態
1 git status
跟蹤新文件
git add 文件名 此時文件處於stage狀態
暫存已修改的文件
git add 已修改的文件, 此時文件處於stage狀態
恢復處於Modified狀態的文件
git checkout — <文件名> 會將已經修改的文件但是並沒有提交到緩沖區的文件重置為原來的狀態
將處於緩沖區的文件重置到工作區
 git reset HEAD <文件名> 或是 git reset <文件名>
使用忽略文件 .gitignore,具體規則如下:
  • 所有空行或者以#開頭的行都會被Git忽略;
  • 可以使用glob模式匹配;
  • 匹配模式可以以(/)開頭防止遞歸;
  • 匹配模式可以以(/)結尾指定目錄;
  • 要忽略指定模式以外的文件或目錄,可以在模式前加上驚嘆號(!)取反
一個.gitignore文件的例子:
# no .a file
*.a
 
#but do track lib.a, even though you’re ignoring .a files above
!lib.a
 
# only ignore TODO file in the currency directory, not subdir /TODO
/TODO
 
#ignore all files in the build/ dictionary
build/
 
#ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt
 
#ignore all .pdf files in the doc/ directory
dic/**/*.pdf
git diff命令比較的是工作目錄中當前文件和暫存區域之間的差異,也就是修改之後還沒有暫存起來的內容的變化。若要查看已暫存的將要添加到下次提交的內容,可以使用git diff--cached命令或是git diff —staged 跳過使用暫存區域 在使用git commit進行提交修改的時候,可以使用命令參數-a從而跳過將修改提交到暫存區,直接提交到版本庫中,從而省略git add的過程 查看提交歷史 通過使用git log命令可以查看之間提交的歷史,使用-p參數顯示每次提交的差異。另外一個常用的選項是git log —pretty=oneline將每個提交都在一行的形式進行顯示。下面是git log的常用選項
選項 說明
-p 按補丁形式顯示每個更新之間的差異
--stat 顯示每次更新的文件修改統計信息
--shortstat 只顯—stat中最後的行數修改添加移除統計
--name-only 僅在提交信息後顯示已修改的文件清單
--name-status 顯示新增、修改、刪除的文件清單
--abbrev-commit 僅顯示SHA-1的前幾個字符,而非所有的40字符
--relative-date 使用較短的相對時間顯示
--graph 顯示ASCII圖形便是德分支合並歷史
--pretty 使用其他格式顯示歷史提交信息。可用的選項包括online、short、full、fuller和format
撤銷操作 當提交完成之後發現漏掉文件沒有提交或者提交信息寫錯了,可以使用git commit —amend選項的命令嘗試重新提交
git commit -m “Init Repo”
git add forgotten_file
git commit —amend
最終只會有一個提交,第二次提交將替換第一次的提交 標簽操作 列出現在已有的標簽: git tag. 可以使用特定的模式來查看特定的標簽,例如:git tag -l “v1.1” Git使用兩種主要標簽:輕量標簽(lightweight)和附註標簽(annotated),一個輕量標簽只是一次提交的引用,附註標簽是存儲在Git數據庫中的一個對象,包含創建者,時間等信息,因此推薦使用附註標簽。 使用git tag -a v1.4 -m “my version 1.4”來創建附註標簽,使用命令git show來顯示標簽的相關信息。直接使用git tag v1.4來創建輕量標簽。也可以對之前的某個提交打標簽,使用命令git tag -a v1.4 9fceb02 檢出標簽 使用命令git checkout -b [branchname] [tagname]在特定的標簽上創建一個新分支

Git學習系列-Git基本概念