【初始化】
建立一個本地的git倉庫,建立以後就會在當前目錄生成一個.git的文件
git init # 初始化本地版本庫
git clone <url> #從遠程克隆代碼到本地,url是遠程代碼地址
【拉取git遠程倉庫的文件】
git pull # 拉取遠程倉庫代碼
【查看文件狀態】
git status #查看文件狀態(經常使用)
git status -s #以極簡形式查看文件狀態
A:本地新增的文件(服務器上沒有)
C:文件的一個新拷貝
D:本地刪除的文件(服務器上還在)
M:紅色爲修改過未被添加進暫存區的,綠色爲已經添加進暫存區的
R:文件名被修改
T:文件的類型被修改
U:文件沒有被合併(你須要完成合並才能進行提交)
X:未知狀態(極可能是遇到git的bug了,你能夠向git提交bug report)
?:未被git進行管理,可使用git add fileName把文件添加進來進行管理
【提交文件】
git add . #將全部改動過的文件添加到緩存區
git add <file> #跟蹤指定的文件(或文件夾),file是文件夾地址或者文件地址
git commit -m '提交信息' #將暫存區的修改提交到本地倉庫,同時會生成一個commmit-id
git push #推送代碼到默認的分支
git push origin <branch> #推送代碼到指定的分支下,branch是分支名
【分支命令】
$ git branch #查看分支
$ git branch test-1 # 建立分支(分支名爲test-1)
git checkout [name] #切換分支
git branch -d [name] 【強制刪除使用大寫字母D】 # 刪除本地分支
$ git push origin :origin-test-1 #刪除遠端項目分支(origin-test-1爲分支名)
git branch -r # 查看遠端分支
$ git branch -v #查看分支最後一次提交的commit id
【經常使用git stash命令】
git stash save "save message" #執行存儲時,添加備註,方便查找,只有git stash 也要能夠的,但查找時不方便識別。
git stash list #查看stash了存儲棧
git stash show #顯示作了哪些改動,默認show第一個存儲,若是要顯示其餘存貯,後面加stash@{$num},好比第二個 git stash show stash@{1}
git stash show -p # 顯示第一個存儲的改動,若是想顯示其餘存存儲,命令:git stash show stash@{$num} -p ,好比第二個:git stash show stash@{1} -p
git stash apply #應用某個存儲,但不會把存儲從存儲列表中刪除,默認使用第一個存儲,即stash@{0},若是要使用其餘個,git stash apply stash@{$num} , 好比第二個:git stash apply stash@{1}
git stash pop :命令恢復以前緩存的工做目錄,將緩存堆棧中的對應stash刪除,並將對應修改應用到當前的工做目錄下,默認爲第一個stash,即stash@{0},若是要應用並刪除其餘stash,命令:git stash pop stash@{$num} ,好比應用並刪除第二個:git stash pop stash@{1}
git stash drop stash@{$num} :丟棄stash@{$num}存儲,從列表中刪除這個存儲
git stash clear :刪除全部緩存的stash
命令執行後視圖瞭解:
Changes not staged for commit :已追蹤,但修改後未add到暫存區的文件
git commit -m '提交信息' #將暫存區的修改提交到本地倉庫,同時會生成一個commmit-id
[zjsecurity-fix b04254e] zjsecurity-fix爲分支名,b04254e 爲 commmit-id
使用情境:
情境1:首次推送代碼至遠程倉庫
// 在本地項目文件夾中,初始化本地git倉庫
$ git init
// 添加項目全部文件至暫存區
$ git add *
// 編輯提交備註
$ git commit -m 'first commit'
// 鏈接遠程github倉庫
$ git remote add origin <url>
// 推送到遠程倉庫(這個過程須要填寫用戶名和編碼)
$ git push -u origin master
情境2 :先拉取遠程更新內容,在提交本地修改html
// 先拉取遠程代碼(若是拉取以後有衝突,手動在本地修改衝突)
git pull
// 查看本地修改的文件
git status
// 選擇須要提交的文件
// 「src/main/java/com/fline/zjsecurity」 是須要提交的是文件夾
git add src/main/java/com/fline/zjsecurity/
// 提交內容描述
// git commit -m '提交描述'
git commit -m '數據識別規則模板類型信息處理'
// 提交修改的代碼到指定分支
// zjsecurity-fix 爲分支名
git push origin zjsecurity-fix
情境四:首次拉取代碼時發生報錯 fatal: Not a valid object name: 'master'.java
11905625546@DESKTOP-TOKFC65 MINGW64 /d/Eclipse/gzt_ybtx (master)
$ git branch release-for-gzt
fatal: Not a valid object name: 'master'.
報錯緣由:
由於當前沒有master分支,經過git branch會發現,沒有任何輸出結果。
解決方法:
git 進行一次提交,代碼會提交到master分支上,這時在本地倉庫也會建立一個master分支;
或者
git pull <url> <分支名> 在本地會優先建立一個master分支來存儲當前代碼。