Git必須掌握的命令大全

2021-09-03 02:12:00 字數 3157 閱讀 6125

參考文章 (

git init    在指定本地目錄初始化git倉庫,會生成 .git檔案

git config 可以對git的一些基本命令進行配置,如縮寫

git config --global alias.br branch 例:br == branch

git add file 新增指定檔案到index

git add . 新增所有改動的檔案到index

git status    檢視local和index的區別,提供上下文資訊

git status -s 檢視local和index的區別,精簡型別,沒有上下文資訊,更直觀

git diff    檢視local和index的具體區別

git diff --cached 檢視index和snapshot的具體區別

git diff head local與index和snapshot的差異全部列出來

git diff --stat 顯示改動摘要,不顯示詳細資訊

git diff tag 顯示該標籤發布之後的所有改動

git commit    提交index內容到snapshot

git commit -a 等同於先git add . 再 git commit(如果是新檔案,仍然需要先add該檔案)

git commit -am "***xx" 等同於先add、再生成快照並同事備註***資訊

git reset head -- file    取消index內的檔案修改

git checkout -- file 恢復local檔案,加入index之後無法恢復,要使用reset

git checkout . 撤銷所有的檔案修改

git reset --hard 強行回退乙個版本

git reset --hard [commit id] 回退到指定版本

git rm -f file    強行刪除檔案,包括local區

git rm --cached file 從index刪除檔案,本地保留

git branch    列出所有的本地分支,當前處於的分支會有 * 提示

git branch -a 列出所有的分支,包括本地的和遠端倉庫的

git checkout *** 切換到某個分支

git checkout -b "***" 生成並切換到新分支***(本地)

git push --set-upstream origin [name] 在遠端倉庫建立分支並上傳

git branch -d "***" 刪除某個分支,如果還有內容沒有完全merge,會發出警告

git branch -d "***" 刪除某個分支,無視merge警告

git merge ***    把某個分支的內容合併到當前分支

git cherry-pick [commit id] 只合併某個提交點的內容到當前分支,不同於merge,merge會把所有差異的檔案內容都合併過來

vim 檔案    通過git直接修改某檔案
在mergging模式下,git diff 可以檢視具體的衝突內容,解決完衝突之後需要重新add commit

git log    檢視所有快照log

git log --oneline 以精簡的模式檢視log

git log --oneline --graph 檢視log的快照,能知道合併、merge的點

git log --oneline *** 檢視***分支的log資訊

git log --oneline *** ^yyy 檢視***分支的快照(但yyy分支中沒有的快照)log

git log --decorate 檢視的log資訊會顯示tag

git log [alias]/*** 檢視遠端倉庫別名為alias的***分支log

git log --author *** 只檢視***的提交

git log --author *** --oneline -5 只檢視***的最新5個提交

git log --oneline --before= --after= --no-merges 檢視某個日期之前且某個日期之後的提交

git log --grep *** 匹配備註資訊裡有***的log

git log filename 檢視某個檔案的每次commit記錄

git log -p filename 檢視某個檔案每次提交的diff

git show [commit id] 檢視某次提交的修改內容

以上字段 --oneline --decorate --graph 可以同時存在乙個命令列裡面,組合起來使用

git tag -a v1.0    在當前時間點打上乙個帶註解的標籤(v1.0),不加-a則不會記錄time,who,註解(類似commit的-m)

git tag -a v0.1 sha 可以給某個指定的快照追加tag,sha值為通過--oneline顯示出來sha值

git remote    列出遠端倉庫別名

git remote -v 列出遠端倉庫別名和鏈結位址

git remote add [alias] [url] 將url以alias的別名新增為本地的遠端倉庫

git remote rm [alias] 刪除某個遠端別名

origin是遠端倉庫的預設倉庫別名

git fetch [alias] 提取指定的遠端倉庫

git fetch --all 獲取所有的遠端倉庫資料

git pull 從遠端參控股提取資料並嘗試合併到當前分支,相當於 fetch + merge

git push [alias] [branch] 將branch分支推送到alias遠端倉庫的branch分支上

程式猿必須掌握的git命令

git status s m readme m表示修改過的檔案,沒有add mm rakefile 第乙個m表示修改過沒有add,第二個m表示 add了但是沒有commit a lib git.rb a表示新新增的檔案,已經add但是還沒有commit m lib git.rb m表示修改過但是沒有...

必須掌握的DOS命令(摘)

一,ping 它是用來檢查網路是否通暢或者網路連線速度的命令。作為乙個 生活 在網路上的管理員或者黑客來說,ping命令是第乙個必須掌握的dos命令,它所利用的原理是這樣的 網路上的機器都有唯一確定的ip位址,我們給目標ip 位址傳送乙個資料報,對方就要返回乙個同樣大小的資料報,根據返回的資料報我們...

必須掌握的DOS命令(摘)

一,ping 它是用來檢查網路是否通暢或者網路連線速度的命令。作為乙個 生活 在網路上的管理員或者黑客來說,ping命令是第乙個必須掌握的dos命令,它所利用的原理是這樣的 網路上的機器都有唯一確定的ip位址,我們給目標ip 位址傳送乙個資料報,對方就要返回乙個同樣大小的資料報,根據返回的資料報我們...