git的使用流程
git 碼雲 倉庫通訊說明
在寫 git 命令之前先來描述一下 git 和碼雲之間的通訊。
1. 首先 在碼雲倉庫中新建自己的倉庫,設定相關的配置
2. 執行 git clone url(遠端倉庫地址) 將遠端倉庫下載到本地。
進入專案目錄,目錄下有.git檔案,在這個目錄下寫自己的專案檔案。
3. 如果你已經在本地使用了git管理了你的專案,現在需要將本地的專案上傳到碼雲倉庫。
你同樣需要在碼雲上新建專案,將專案清空即可。
然後在本地新增遠端倉庫地址,就可以將已經存在的git專案推到碼雲上了,注意步驟,否則是推送到遠端倉庫
4. 關於密碼許可權問題
你需要使用碼雲上的 SSH 連結,不要使用 https 連結,然後按照連結步驟
[http://git.mydoc.io/?t=154712][1] 配置即可。
git的安裝
在git官網上下載 git 安裝檔案,下載所需版本,一路點選下一步即可,也可以自行設定選項。
安裝完成以後。雙擊 Git Bash 開啟命令皮膚。
執行 git version 檢視版本號,能正常執行並輸出版本號,說明 git 安裝成功。
如果在 cmd 中無法啟用 git 命令,需要配置環境變數。配置的過程如下:
在我的電腦中右擊,
選擇屬性選項 ->高階系統設定 -> 高階選項卡 -> 點選環境變數按鈕 ->
在系統變數中找到 Path 雙擊將 git 的安裝目錄複製進去即可.
這樣就能在 cmd 中啟用 git 指令了,如有疑問自己百度一下配置好即可。
git 指令的使用
使用前先了解一下 dos 和 linux 的簡單命令( 可以先略過 )
cd 命令
cd .. 返回上一級目錄
cd d: 進入 d 盤(指定的碟符)
cd / 返回根目錄
cd <folderName> 進入指定的目錄
ls命令
ls 列出當前目錄下所有的檔案( 不含隱藏檔案 )
ls -lat 列出隱藏檔案目錄詳細資訊
ls -a 列出目錄下所有的目錄和檔案
mkdir 命令
mkdir <dirname> 建立新目錄(在當前目錄下)
touch 命令
touch <fileName> 建立新檔案
cat 命令
cat <fileName> 顯示這個檔案
vi 命令
vi <fileName> 編輯檔案
在英文狀態下輸入 i,進入插入模式
編輯文字後,按 esc 鍵退出編輯
按 :wq 儲存並退出,回到命令皮膚
git 檢視檔案狀態
1.git status : 檢視當前狀態,看提示的顏色和標誌,區分檔案需要的操作。
2.git status -s : git status 簡化 注意前面的字母標誌,分為2列,
第一列是對staging區域而言,第二列是對working目錄而言。同時注意字母的顏色,區分當前檔案的狀態。
git 跟蹤檔案
1.git add : 將檔案新增到暫存區,非常重要的一個操作,這樣就可以實時的對你的檔案進行跟蹤了。
2.git add filename : 將filename檔案新增到暫存區
3.git add . : 將所有檔案新增到暫存區
4.git add -A : 新增所有改動檔案到暫存區( 不常用 )
5.git add -u : 新增有改動且已追蹤的檔案( 不常用 )
git 檔案比較
1.git diff : 比較檔案,預設是工作區和暫存區檔案比較,不加引數是所有檔案
2.git diff --cached : 暫存區和本地倉庫比較
3.git diff head : 工作區和本地倉庫比較
4.git diff filename : 工作區和暫存區 filename 檔案的對比,可以加路徑。
5.git diff branchName filename : 比較當前分支和 branchName 分支的 filename 的檔案
6.git diff romoteName/branchName filename : 比較遠端主機 romoteName 的 branchName 分支的filename檔案比較。
即當前分支的某個檔案和遠端主機的某個分支的程式碼比較。
注意:如果不傳filename,比較所有檔案,傳filename時注意檔案路徑。
在執行add操作是,為了安全先執行diff命令。在 git diff 中存在狀態字
第一列 M 表示:版本庫和處理中間狀態有差異( 版本庫與暫存區有差異 )
第二列 M 表示:工作區和暫存區檔案有差異( 當前檔案指 )
A: 你本地新增的檔案(伺服器上沒有)
C: 檔案的一個新拷貝
D: 你本地刪除的檔案(伺服器上還在)
R: 檔名被修改了
T: 檔案的型別被修改了
U: 檔案沒有被合併(你需要完成合並才能進行提交)
X: 未知狀態(很可能是遇到git的bug了,你可以向git提交bug report)
詳情請查閱相關資料,不過意義不大,用一段時間就知道了。
git 檢視日誌
1.git log : 列出提交的詳細資訊
2.git shortlog : git log 簡化
3.git log -p : 檢視歷次的 log 資訊及更改情況
4.git log -p -number : 檢視距現在最近的 number 次的 提交的資訊及更改情況
5.git log --stat -number : 檢視log顯示檔案修改情況
6.git log --pretty=oneline : 檢視提交的版本 ID
7.git reflog : 檢視所有的操作資訊。
git log --stat -number
很有用的一個命令,可以迅速查詢到你上次提交的具體的檔案資訊,只是展示那些檔案被修改過。
git 提交
1.git commit -m "資訊" : 提交到本地倉庫
2.git commit filename -m "資訊" : 提交指定檔案,可以是檔案目錄,多檔案用空格隔開
3.git commit --amend -m "資訊" : 合併提交
4.git commit -a -m "資訊" : 新增到暫存區並提交到本地倉庫(不建議使用)
git 回退
1.git checkout .(<fileanme>|/dirname) : 撤銷修改,不建議使用,會造成修改的檔案無法找回。(從工作區撤回)
2.git reset HEAD <filename> : 從暫存區撤銷指定檔案
3.git reset : 從暫存區撤銷所有未提交的檔案
4.git reset --hard HEAD : 硬回退到最後一次提交(硬)
5.git reset --hard HEAD^ : 最後一次提交的前一個提交(硬)
6.git reset --hard HEAD~number : 回退到前 number 版本(硬)
7.git reset --hard versionNumber : 回到指定的版本,通過 versionNumber 版本號(硬)
8.git reset --hard master@{num} : 回到指定的版本
--hard : 直接回退到工作區
--soft : 從倉庫恢復,本次修改的內容依然存在,只是處於為提交狀態
後面 5 條不知道為什麼這樣顯示,很無奈。
git 分支
說道分支,特別強調,在git使用過程中,一定要知道所有的操作都是針對當前分支的。所以在檢視git文件時要深刻理解你當前處在
哪個分支,想在當前分支上做哪些操作。 這一點對於git的使用至關重要,幾乎所有的指令都直接和間接與分支關聯。
1.git branch branchName : 建立一個名為 branchName 的分支
2.git checkout branchName : 從當前分支切換到 branchName 分支
3.git checkout -b branchName : 建立並切換分支
4.git checkout -b branchName remoteName/branchName 建立一個乾淨的分支(以遠端分支為基礎,建立新的本地分支,如果clone後,需要切換到某個分支,而本地並沒有這個分支。可以使用該命令)
5.git branch -d branchName : 刪除分支,未合併分支不能被刪除,使用 -D 強制刪除分支
6.git branch : 列出本地分支
7.git branch -a/-r : 列出所有分支
8.git branch -v : 檢視分支的最後修改(分支最後一次提交的版本資訊)
9.git reflog show branchName : 列出指定分支的版本記錄列表
10.git reflog show --date=iso branchName : 檢視分支建立的時間
11.git merge branchName : 將指定的 branchName 分支合併到當前分支。
git 中斷 stash
起名中斷,自己這麼理解,該方法很有用。特別是在開發新版本的時候,正式伺服器上有一個緊急的,
需要修復的 bug, 這個時候怎麼辦,又不想提交。於是你可以執行這個命令。保持現場,等你回來。
1.git stash : 中斷,保持現場。(用編號標記不同的中斷)
2.git stash pop : 取出中斷,恢復最後一次中斷時的現場。
3.git stash list : 檢視所有的中斷資訊
4.git stash apply stash@{1} : 取出指定的中斷
5.git stash clear : 清除所有中斷
舉一個例子,比如你在dev分支正在開發一個功能,這時master分支有一個亟待解決的bug。
此時dev分支的功能並沒有開發完,現在並不想執行 commit,提交。這時你執行 git stash,中斷。
然後切換到mater分支上修復bug,修復完成後切換到 dev 分支,
然後將中斷取出,執行git stash pop 就可以繼續你的開發工作了。