GIT基本命令

【初始化】
建立一個本地的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
 

 
命令執行後視圖瞭解:
git status #查看文件狀態
-- 紅色表示沒有提交到緩存區的文件:
Untracked files:未追蹤的文件;
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分支來存儲當前代碼。
 
 
 
 歡迎轉載,轉載請註明出處 http://www.javashuo.com/article/p-knkvnciq-by.html
相關文章
相關標籤/搜索