git 命令大全(完整版)
阿新 • • 發佈:2018-10-11
拉取 str 修改版本 xxx 用戶 command 克隆 單個 sage
Git 常用命令詳解
Git 是一個很強大的分布式版本控制系統。它不但適用於管理大型開源軟件的源代碼,管理私人的文檔和源代碼也有很多優勢。
1.Git文件操作
$ git help [command] # 顯示command的help $ git show [$id] # 顯示某次提交的內容 $ git checkout [file] # 拋棄工作區修改 $ git checkout . # 拋棄工作區修改 $ git add [file] # 將工作文件修改提交到本地暫存區 $ git add . # 將所有修改過的工作文件提交暫存區 $ git rm [file] # 從版本庫中刪除文件 $ git rm --cached [file] # 從版本庫中刪除文件,但不刪除文件 $ git reset [file] # 從暫存區恢復到工作文件 $ git reset -- . # 從暫存區恢復到工作文件 $ git reset --mixed HEAD~1 # 修改版本庫,修改暫存區,保留工作區 $ git reset --soft HEAD~2 # 修改版本庫,保留暫存區,保留工作區 $ git reset --hard HEAD~3 # 修改版本庫,修改暫存區,修改工作區 $ git commit --amend # 修改最後一次提交記錄 $ git revert [$id] # 恢復某次提交的狀態,恢復動作本身也創建次提交對象 $ git revert HEAD # 恢復最後一次提交的狀態 $ git status # 查看當前工作區狀態 $ git config --list # 看所有用戶 $ git ls-files # 查看已經被提交的文件 $ git commit -a # 提交當前repos的所有的改變 $ git commit -v # 參數-v可以查看看commit的差異 $ git commit -m "message" # 提交到本地並添加提交信息 $ git commit -am "init" # 添加並提交 $ git log [file] # 查看該文件每次提交記錄 $ git log -p [file] # 查看每次詳細修改內容的diff $ git log -p -2 # 查看最近兩次詳細修改內容的diff $ git log --stat # 查看提交統計信息 $ git rm --cached [file] # 從暫存區中刪除文件 $ git rm -f [file] # 強行移除版本控制的文件 $ git rm -r --cached [file] # 遞歸刪除-r,是文件夾的時候有用 $ git diff [file] # 比較當前文件和暫存區文件差異 $ git diff [$id] [$id] # 比較兩次提交之間的差異 $ git diff [branch1]..[branch2] # 在兩個分支之間比較 $ git diff --staged # 比較暫存區和版本庫差異 $ git diff --cached # 比較暫存區和工作區差異 $ git diff --stat # 僅僅比較統計信息 $ git stash # 暫存當前正在進行的工作 $ git stash push # 將暫存給push到一個臨時空間中 $ git stash list # 查看所有緩存的代碼 $ git stash clear # 清空緩存區內容 $ git stash drop # 移除某個貯藏 $ git stash save # 指定message $ git stash show # 查看指定stash的diff $ git stash apply stash@{1} # 取出指定的緩存代碼 $ git stash pop # 將文件從臨時空間pop下來 $ git fetch origin dev:dev # 獲取最新版本到本地不會自動merge $ git pull origin master:master # 獲取最新版本到本地會自動merge
Git分支操作相關命令
$ git branch # 查看分支 $ git branch [dev] [master] # 在master創建dev分支 $ git branch -v # 查看各個分支最後提交信息 $ git branch -r # 查看遠程分支信息 $ git branch -a # 查看所有分支信息 $ git branch -m [aaa] [bbb] # 將aaa 重命名為bbb $ git branch [name] # 從當前分支創建分支 $ git branch -d [branch] # 刪除某個分支 $ git branch -D [branch] # 強制刪除某個分支 $ git branch --set-upstream-to origin/test master # 本地分支和遠程分支關聯 $ git branch --set-upstream-to=origin/master help # $ git branch --merged # 查看已經被合並到當前分支的分支 $ git branch --no-merged # 查看尚未被合並到當前分支的分支 $ git commit [$id] -b [new_branch] # 從歷史提交記錄創建分支 $ git commit [$id] # 從歷史提交記錄checkout出來,但無分支信息,切換到其他分支會自動刪除 $ git checkout [name] # 切換分支 $ git checkout --track origin/dev # 切換到遠程dev分支 $ git checkout -b [name] # 從當前分支新建並切換到name $ git checkout -b [new_br] [br] # 基於branch創建新的new_branch $ git merge origin/dev # 將分支dev與當前分支進行合並 $ git merge [branch] # 將branch分支合並到當前分支 $ git merge origin/master --no-ff # 不要Fast-Foward合並,這樣可以生成merge提交 $ git rebase master [branch] # 將master rebase到branch,相當於: git clone [branch] && git rebase master && git clone master && git merge [branch]
Git遠程分支管理
$ git pull # 抓取遠程倉庫所有分支更新並合並到本地 $ git pull --no-ff # 抓取遠程倉庫所有分支更新並合並到本地,不要快進合並 $ git fetch origin # 抓取遠程倉庫更新 $ git merge origin/master # 將遠程主分支合並到本地當前分支 $ git clone --track origin/branch # 跟蹤某個遠程分支創建相應的本地分支 $ git clone -b [l_b] origin/[r_b] # 基於遠程分支創建本地分支,功能同上 $ git push # push所有分支 $ git push origin master # 將本地指定分支推到遠程主分支 $ git push -u origin master # 將本地主分支推到遠程(如無遠程主分支則創建,用於初始化遠程倉庫) $ git clone [[email protected]] # 克隆遠程倉庫 $ git remote -v # 查看遠程服務器地址和倉庫名稱 $ git remote show [name] # 查看遠程服務器倉庫狀態 $ git remote add [name] [url] # 添加遠程倉庫地址 $ git remote rm [repository] # 刪除遠程倉庫 $ git remote set-url --push [name] [newUrl]# 修改遠程倉庫 $ git pull [rName] [lName] # 拉取遠程分支 $ git push [rName] [lName] # 推送遠程分支 $ git push origin [lname]:[rname] # 本地分支push到遠程 $ git push origin -d [name] # 刪除遠程分支-d也可以用--delete $ git remote set-head origin master # 設置遠程倉庫的HEAD指向master分支 $ git branch --set-upstream master origin/master
Git版本回退操作相關命令
HEAD :當前版本
HEAD^ :上一個版本
$ git log # 查看commit的信息
$ git log --pretty=oneline # 單行展示歷史記錄
$ git log --oneline # 單行簡單展示
$ git reflog # 查看命令歷史記錄
$ git checkout . # 撤銷所有本地改動代碼
$ git checkout [file] # 撤銷所有本地改動代碼
$ git reset HEAD . # 撤銷所有add文件
$ git reset HEAD [file] # 撤銷單個add文件
$ git reset --soft HEAD # 只回退commit的信息,保留修改代碼
$ git reset --hard HEAD^ # 徹底回退到上次commit版本,不保留修改代碼
$ git revert # 以前commit的id
$ git reset --hard [branch] # 本地代碼回退到與git遠程倉庫保持一致
--hard 參數會拋棄當前工作區的修改
--soft 參數的話會回退到之前的版本,但是保留當前工作區的修改,可以重新提交
Git標簽操作相關命令
$ git tag # 查看標簽
$ git tag [name] # 創建版本
$ git tag -d [name] # 刪除版本
$ git tag -r # 查看遠程版本
$ git push origin [name] # 創建遠程版本(本地版本push到遠程)
$ git push origin :refs/tags/[name] # 刪除遠程版本
$ git pull origin --tags # 合並遠程倉庫的tag到本地
$ git push origin --tags # 上傳本地tag到遠程倉庫
$ git tag -a [name] -m [message] # 創建帶註釋的tag
Git子模塊(submodule)相關操作命令
$ git submodule add [url] [path] # 添加子模塊
$ git submodule init # 初始化子模塊,只在首次檢出倉庫時運行一次就行
$ git submodule update # 更新子模塊 每次更新或切換分支後都需要運行一下
刪除子模塊:分4步
1) $ git rm --cached [path]
2) 編輯“.gitmodules”文件,將子模塊的相關配置節點刪除掉
3) 編輯“ .git/config”文件,將子模塊的相關配置節點刪除掉
4) 手動刪除子模塊殘留的目錄
Git補丁管理
git diff ] ../sync.patch # 生成補丁
git apply ../sync.patch # 打補丁
git apply --check ../sync.patch #測試補丁能否成功
Git忽略一些文件、文件夾不提交
在倉庫根目錄下創建名稱為“.gitignore”的文件,寫入不需要的文件夾名或文件,每個元素占一行即可,如
target
*.class
在工作中總結的一些常見的命令,今後還會繼續補充,如有遺漏歡迎補充。
git 命令大全(完整版)