git工作流
git實操
git本地有三個工作區域:
檔案結構如下:
檔案在這四個區域之間的轉換關係如下:
檢視不同級別的配置檔案:
#檢視所有配置
git config -l
#檢視系統config
git config --system --list
#檢視當前使用者(global)配置
git config --global --list
相關的配置檔案所在位置:
1)git\etc\gitconfig :git 安裝目錄下的 gitconfig --system 系統級
2)c:\users\administrator\ .gitconfig 只適用於當前登入使用者的配置 --global 全域性
設定使用者名稱與郵箱(使用者標識,必要)
當你安裝git後首先要做的事情是設定你的使用者名稱和e-mail位址。這是非常重要的,因為每次git提交都會使用該資訊。它被永遠的嵌入到了你的提交中:
#設定自己的配置
git config --global user.name "abc"
#名稱git config --global user.email [email protected] #郵箱
只需要做一次這個設定,如果你傳遞了–global 選項,因為git將總是會使用該資訊來處理你在系統中所做的一切操作。如果你希望在乙個特定的專案中使用不同的名稱或e-mail位址,你可以在該專案中執行該命令而不要–global選項。總之–global為全域性配置,不加則為某個專案的特定配置。版本控制就是對檔案的版本控制,要對檔案進行修改、提交等操作,首先要知道檔案當前在什麼狀態,不然可能會提交了現在還不想提交的檔案,或者要提交的檔案沒提交上。
檔案有四種狀態:
#檢視指定檔案狀態
git status [filename]
#檢視所有檔案狀態
git status
git add . 新增所有檔案到暫存區
git commit -m "訊息內容" 提交暫存區中的內容到本地倉庫, -m + 提交資訊
有些時候我們不想把某些檔案納入版本控制中,不想提交的,比如資料庫檔案,臨時檔案,設計檔案等
在主目錄下建立".gitignore"檔案,此檔案有如下規則:
忽略檔案中的空行或以井號(#)開始的行將會被忽略。
可以使用linux萬用字元。例如:星號(*)代表任意多個字元,問號(?)代表乙個字元,方括號([abc])代表可選字元範圍,大括號()代表可選的字串等。
如果名稱的最前面有乙個感嘆號(!),表示例外規則,將不被忽略。
如果名稱的最前面是乙個路徑分隔符(/),表示要忽略的檔案在此目錄下,而子目錄中的檔案不忽略
如果名稱的最後面是乙個路徑分隔符(/),表示要忽略的是此目錄下該名稱的子目錄,而非檔案(預設檔案或目錄都忽略)。
#為注釋
*.txt #忽略所有 .txt結尾的檔案,這樣的話就不會上傳.txt檔案!
!lib.txt #但lib.txt除外
/temp #僅忽略專案根目錄下的todo檔案,不包括其它目錄temp
build/ #忽略build/目錄下的所有檔案
doc/*.txt #會忽略 doc/notes.txt 但不包括 doc/server/arch.txt
git的工作流程一般是這樣的:
在工作目錄中新增、修改檔案
將需要進行版本管理的檔案放入暫存區域(git add .
)
將暫存區域的檔案提交到本地 git倉庫(git commit
)
因此,git管理的檔案有三種狀態:已修改(modified),已暫存(staged),已提交(committed)
建立本地倉庫的方法有兩種:一種是建立全新的倉庫,另一種是轉殖遠端倉庫。
建立全新的倉庫,需要用git管理的專案的根目錄執行:
#在當前目錄新建乙個git**庫
git init
執行後可以看到,僅僅在專案目錄多出了乙個.git目錄,關於版本等的所有資訊都在這個目錄裡面。
另一種方式是轉殖遠端目錄,由於是將遠端伺服器上的倉庫完全映象乙份至本地。
#轉殖乙個專案和它的整個**歷史(版本資訊)
git clone [url]
幾乎所有的版本控制系統都以某種形式支援分支。 使用分支意味著你可以把你的工作從開發主線上分離開來,以免影響開發主線。
git分支中常用指令:
# 列出所有本地分支
git branch
# 列出所有遠端分支
git branch -r
# 新建乙個分支,但依然停留在當前分支
git branch [branch-name]
# 切換分支
git checkout -b [branch]
# 將指定分支合併到當前分支
$ git merge [branch]
# 刪除分支
$ git branch -d [branch-name]
# 刪除遠端分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
如果同乙個檔案在合併分支時都被修改了則會引起衝突:解決的辦法是我們可以修改衝突檔案後重新提交!選擇要保留他的**還是你的**!
master主分支應該非常穩定,用來發布新版本,一般情況下不允許在上面工作,工作一般情況下在新建的dev分支上工作,工作完後,比如上要發布,或者說dev分支**穩定後可以合併到主分支master上來。
狂神說 GIT課程筆記
工作區域 git本地有三個工作區域 工作目錄 working directory 暫存區 stage index 資源庫 repository git directory 工作流程 在工作目錄中新增 修改檔案 將需要進行版本管理的檔案放入暫存區域 將暫存區域的檔案提交到git倉庫 本地倉庫搭建 建立...
Git學習 安裝Git與認識Git
git官網位址 然後傻瓜式安裝即可,一路next 開啟命令列 win r 輸入cmd,就可以開啟 輸入 git config global user.name 使用者名稱 git config global user.email 郵箱 來區分不同開發人員的身份 使用 git config list ...
git學習 Git 基礎要點
簡單地說,git 究竟是怎樣的乙個系統呢?請注意,接下來的內容非常重要,若是理解了 git 的思想和基本的工作原理,用起來就會知其所以然,游刃有餘。在開始學習 git 的時候,請不要嘗試把各種概念和其他的版本控制系統諸如 subversion 和 perforce 等相比擬,否則容易混淆每個操作的實...