Git的一些常見操作和問題
git使用文件
1. git倉庫區域關係
工作區指的是我們平常使用得分存放工作檔案的檔案位置區域,也就是檔案管理器肉眼可見的位置
版本庫位於工作區域根目錄下的一個隱藏目錄.git目錄內
stage區也叫暫存區,位於.git/index檔案,他是一個檔案,而不是一個目錄
master區域:這裡其實這樣寫會造成誤解,master是一個分支名稱,commit的操作時間暫存區的檔案永久新增到本地倉庫,途中matster區域應該理解為本地倉庫,而這個本地倉庫並不等同於前面的工作區,這個本地倉庫室友git進行管理的一個倉庫,同時其原理儲存的是每次commit時,倉庫的快照,而非真是的各種檔案。
HEAD代表當前git狀態指向,如圖為master分支
2. git狀態的變化
在工作區對檔案進行修改以後,使用git status檢視檔案狀態,被修改的檔案將呈現為紅色狀態,即為提交狀態
使用git add 命令提交檔案到暫存區,檔案狀態將變為綠色
git add . 新增所有改動檔案到暫存區
git add fileName 新增指定檔案到暫存區
使用git commit 命令將暫存區檔案永久性新增到本地倉庫
git commit -m “remarks”
使用git push 將本地倉庫推送到遠端倉庫
git push
push 時可能遇到error,通常情況是由於遠端倉庫最近一次推送者並不是你自己,所以遠端倉庫存在你本地艙部並不存在的檔案或者修改,如圖:
這時,你需要先pull遠端倉庫的變動併合併到本地分支,通常的操作為:
git pull origin master
git pull操作其實並不是一個操作,而是git fetch和git merge兩步操作,中文解釋為拉取併合並
上述pull失敗原因是由於未指定從哪裡進行pull程式碼,修改為:
git pull origin master
如果繼續提示失敗,日誌提示為CONFILCT ,則說明你和另外一個開發者修改了同一份檔案,這時需要解決衝突,解決完衝突需要重新add和commit,最後push。如下圖衝突示例:
HEAD和等號之間部分為你的程式碼部分,等號到bugfix02之前為另一位開發者程式碼部分,此時需要決定保留你的或者他的,或者兩個都保留。
3. 標準流程
git add .
git status 確認修改檔案已經新增到暫存區,並不是git add .一定會成功提交到暫存區
git pull origin master
git commit -m “remarks”
git push origin master
按照上面的步驟順序執行,通常不會出問題,除了問題檢視是否與第二部分內的情況對應
4. 常用操作
git remote show 檢視當前遠端倉庫連結情況
git checkout -b dev 建立dev分支並且換到dev分支
git branch -a 檢視所有分支
git rm -rf –cache . 清空本地倉庫(不是刪除),通常是在修改了gitignore檔案後使用,是gitignore生效
git clone -b dev http://11.11.11.11/aaa/aaa.git 克隆遠端倉庫,並建立本地dev分支與遠端dev分支對應,並切換到dev分支
git logs 檢視最近上傳記錄日誌 按q退出
git log –pretty=oneline README.md 檢視某個檔案的歷史提交記錄(指的是commit是的備註)
git show 8a462f8971c0b1aa939a90add1a1bad96a4f3896
檢視上述圖片內8a462f8971c0b1aa939a90add1a1bad96a4f3896快照上,README.md檔案內容的變化情況
git status 檢視工作區檔案狀態
git的基本使用大概就這些,關於分支,由於我們只是用一個分支進行管理,這裡就不詳細說明分支的概念的基本使用了,推薦一個文件,詳細說明了git的使用,下面的網站,很形象的介紹了git:Git教程-廖雪峰