git常用命令


GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/git-common-command/

Git遠程操作詳解 :https://microzz.com/2017/05/06/git/

一篇文章,教你學會Git : https://juejin.im/post/599e14875188251240632702

如何在 Git 中使用撤消操作

git使用中碰到的問題,持續更新

 

 

 命令別名設置:

 

 

 

 gitk --all & //打開git 圖形化界面 git fetch --all //刷新工作區     git remote -v //查看遠端地址  git checkout -b dbg_master  -t origin/master   //基於遠端master分支創建dbg_master分支 git merge --squash <branch>:將多次提交合並成一個,然后git add .;git commit -m "XXXXX";git push origin XXXX... git push # push所有分支 git push origin master # 將本地主分支推到遠程主分支 git push -u origin master # 將本地主分支推到遠程(如無遠程主分支則創建,用於初始化遠程倉庫) git push origin <local_branch> # 創建遠程分支, origin是遠程倉庫名 git push origin local-branch #將當前local-branch 分支推送一個遠程local-branch分支,本地分支和遠程分支同名 git push origin <local_branch>:<remote_branch> # 創建遠程分支,將local_branch代碼推送到remote_branch分支 git push origin :<remote_branch> #先刪除本地分支(git br -d <branch>),然后再push刪除遠程分支 對最近一次commit的進行修改:git commit -a –amend Git pull 強制覆蓋本地文件   git fetch --all   git reset --hard origin/master   git pull git remote add origin https://git.oschina.net/duandaoke/os.git要求服務已經建立同名倉庫 git remote # 顯示遠程倉庫 git remote -v # 顯示遠程倉庫詳情 git remote show origin # 顯示 origin 遠程庫的詳情 rebase的沖突解決 解決完一個補丁應用的沖突后,執行下面命令標記沖突已解決(也就是把修改內容加入緩存) git add -u //注:-u 表示把所有已track的文件的新的修改加入緩存,但不加入新的文件。 然后執行下面命令繼續rebase: git rebase --continue //有沖突繼續解決,重復這這些步驟,直到rebase完成。 如果中間遇到某個補丁不需要應用,可以用下面命令忽略: git rebase --skip 如果想回到rebase執行之前的狀態,可以執行: git rebase --abort //放棄rebase 注:rebase之后,不需要執行commit,也不存在新的修改需要提交,都是git自動完成。 cherry-pick的沖突解決 解決完一個補丁應用的沖突后,執行下面命令標記沖突已解決(也就是把修改內容加入緩存) git add -u //注:-u 表示把所有已track的文件的新的修改加入緩存,但不加入新的文件。 然后執行下面命令繼續rebase: git cherry-pick --continue //有沖突繼續解決,重復這這些步驟,直到cherry-pick完成。 如果中間遇到某個補丁不需要應用,可以用下面命令忽略: git cherry-pick --skip 如果想回到rebase執行之前的狀態,可以執行: git cherry-pick  --abort //放棄cherry-pick 注:cherry-pick之后,不需要執行commit,也不存在新的修改需要提交,都是git自動完成。 手動編輯沖突的文件,使其內容和master_mlc分支上的內容一致,  然后git add此文件,最后執行git cherry-pick –continue即可。  1、git刪除遠程分支 git push origin :branch-name //origin前面必須有空格,表示push一個空分支到遠程分支,即可刪除遠程分支。注意:這個操作需要擁有force push的權限 2、清空git暫存區 git reset HEAD  //可以清空之前git add 的內容

 

   git clean命令用來從你的工作目錄中刪除所有沒有tracked過的文件.
   git clean經常和git reset --hard一起結合使用. 記住reset只影響被track過的文件, 所以需要clean來刪除沒有track過的文件. 結合使用這兩個命令能讓你的工作目錄完全回到一個指定的<commit>的狀態. 用法 刪除當前目錄下沒有被track過的文件和文件夾. git clean -xf 下面的例子要刪除所有工作目錄下面的修改, 包括新添加的文件. 假設你已經提交了一些快照了, 而且做了一些新的開發. 1 2git reset --hard git clean -df 運行后, 工作目錄和緩存區回到最近一次commit時候一摸一樣的狀態, git status會告訴你這是一個干凈的工作目錄, 又是一個新的開始了.

 

git config --global gui.encoding utf-8 //在git GUI中使用UTF-8編碼     
//git 回滾到之前某一commit git reset –hard 8ff24a6803173208f3e606e32dfcf82db9ac84d8 在使用Git的時候,經過幾次提交后,發現需要回退到早些時候的狀態.例如:  7edb8524a xxxxxxxxxxxxxxxxxx  83dae5691 xxxxxxxxxxxxxxxxxx  45eadd642 xxxxxxxxxxxxxxxxxx  657834ade xxxxxxxxxxxxxxxxxx 假設現在處於7edb8524a 狀態,現在我想回退到657834ade時的狀態,此時可以  git reset –hard 7edb8524a  然后  git reset –soft 657834ade  會將之間的修改全部進行revert,然后在進行add commit操作就行了. 另外權限足夠的話,可以從657834ade 拉一個分支出來,然后將遠程分支  刪除,再將拉出來的分支push到遠程倉庫上,成為原來的分支,也可以實現回退到  657834ade 的目的.此方法不會保留中間的各種修改信息和狀態. 根據–soft –mixed –hard,會對working tree和index和HEAD進行重置:     git reset –mixed:此為默認方式,不帶任何參數的git reset,即時這種方式,它回退到某個版本,只保留源碼,回退commit和index信息     git reset –soft:回退到某個版本,只回退了commit的信息,不會恢復到index file一級。如果還要提交,直接commit即可     git reset –hard:徹底回退到某個版本,本地的源碼也會變為上一個版本的內容
已經push
對於已經把代碼push到線上倉庫,你回退本地代碼其實也想同時回退線上代碼,回滾到某個指定的版本,線上,線下代碼保持一致.你要用到下面的命令

revert
git revert用於反轉提交,執行evert命令時要求工作樹必須是干凈的.
git revert用一個新提交來消除一個歷史提交所做的任何修改.
revert 之后你的本地代碼會回滾到指定的歷史版本,這時你再 git push 既可以把線上的代碼更新.(這里不會像reset造成沖突的問題) revert 使用,需要先找到你想回滾版本唯一的commit標識代碼,可以用 git log 或者在adgit搭建的web環境歷史提交記錄里查看. git revert c011eb3c20ba6fb38cc94fe5a8dda366a3990c61 通常,前幾位即可 git revert c011eb3 git revert是用一次新的commit來回滾之前的commit,git reset是直接刪除指定的commit 看似達到的效果是一樣的,其實完全不同. 

 

 

合理的命令別名設置可以大大減少輸入,有助於提高工作效率,建議遵守下述別名設置:

 

 

 

git config --global alias.ci commit git config --global alias.co checkout git config --global alias.st status git config --global alias.rb rebase git config --global alias.ll “log --oneline --decorate --color” git config --global alias.lc “log --graph --color”          

 

     正確的回車換行設置,避免 Unix 和 Windows 下開發的回車換行的轉換問題。

(Windows  下)

git config --global core.autocrlf true

git config --global core. safecrlf warn

(Linux  下)

git config --global core.autocrlf input

git config --global core. safecrlf warn

     

這篇文章的目的是給經常使用git管理項目提供一個有益的提醒。如果你是git新手,可以先閱讀文后的引用部分,然后在回頭閱讀此篇文章。在介紹git命令之前,你可以先看看來自 on-my-zsh 提供的別名。

基本命令

  • git config --global user.name "Your Name"
  • git config --global user.email "youremail@example.com"
  • git config --global core.editor <your favorite editor here>
    • Ex: git config --global core.editor vim
  • git init:初始化一個repo,初始化本地git倉庫(創建新倉庫)

Commit 結構

  • git status(gst):查看 repo 狀態
  • 工作區:
    • .git 目錄
    • 暫存區
    • 工作目錄

  • git add <filename>(ga):添加一個文件到暫存區
  • git add .(gaa):添加所有文件到暫存區
  • git add *.js:添加所有后綴為js的文件到暫存區
  • git rm --cached <file>:從暫存區刪除一個新文件
  • git commit -m "My first commit"(gcmsg):創建一次帶 message 的提交
  • git commit -v -a(gca):
    • -v是 verbose 的縮寫,會在底部顯示差異信息和更多有意義的信息
    • -a 類似於 git add .,會添加所有被修改和刪除的文件,但會忽略新創建的文件
  • git help <command>:查看對應命令的幫助手冊
  • git log(glg,glgg,gloglog):查看項目的提交歷史

暫存區管理

  • git reset HEAD <filename>(grh):從暫存區刪除一個被修改的文件
  • git reset HEAD(grh):從暫存區刪除所有被修改的文件
  • git checkout <filename>(gco):從暫存區刪除一個被修改的文件,並撤銷文件的更改     //  git checkout .
  • git commit -m "My first commit" --amend:添加文件/更改在暫存區的最后一次提交
  • git commit -v -a --amend(gca!):添加文件/更改在暫存區的最后一次提交
  • .gitignore:告訴git,哪些文件不被加入版本跟蹤
    • 可以使用 git add <filename> -f 命令添加一個不被版本跟蹤的文件
  • git diff <filename>(gd):查看基於當前文件的最后一次提交的更改差異
  • git diff (gd):查看基於所有文件的最后一次提交的更改差異
  • git reset HEAD~2 --soft:從項目提交歷史中刪除最近兩次提交,但不丟棄文件的更改
  • git reset HEAD~2 --hard:從項目提交歷史中刪除最近兩次提交,但會丟棄文件的更改和在(最后兩次)提交中創建的新文件
  • git reset <commit> --soft --hard
    • --soft:將所有被更改的文件回溯到“待提交”狀態
    • --hardcommit 之后,對被git追蹤的文件的任何更改都被丟棄
  • git reflog:顯示包括"被撤銷"在內的所有提交
  • git merge <commit hash>:重新提交(restore the commit)
  • git clean -f:刪除工作目錄中不被git進行版本追蹤的文件

Stashed & BranchesStash

  • git stash(gsta):將所有暫存區的文件移動到“儲藏區”,類似於另一種類型的工作區
  • git stash list:查看儲藏隊列(Stash lists)
  • git stash apply:將最近一次儲藏恢復到暫存區(可以用類似 git stash apply stash@{num}(num從0開始計數) 的命令來使用在隊列中的任意一個儲藏(stashes))
  • git stash clear:清空儲藏隊列
  • git stash save "name of the stash":為儲藏設置命名
  • git stash pop(gstp):將最近一次儲藏恢復到暫存區並從儲藏隊列刪除此儲藏
  • git stash drop(gstd):從儲藏隊列刪除最近一次儲藏(stash@{0})(git stash drop stash@{num} 從儲藏隊列刪除指定儲藏)

Branch

  • git checkout -b dev(gco):創建 dev 分支並從當前分支切換到 dev 分支      //  git checkout -b dbg_master  -t origin/master   //基於master分支創建dbg_master分支
  • git branch(gb):查看所有分支
  • git checkout master(gcm):切換到主分支
  • git merge <branch>(gm):合並分支
  • git rebase master:先將 master 上的更改合並到當前分支,再添加當前分支的更改。如果有沖突,解決沖突后加 --continue 參數繼續合並
  • git branch -d <branch>: 刪除分支,-D 則強制刪除分支
  • git merge <branch> --squash:將多次提交合並成一個,其流程如下:
# Go to the `master` branch git checkout master # Create a temp branch git checkout -b temp # Merge the feature/x branch into the temp using --squash git merge feature/x --squash # See the new modifications/files in the Staging Area git status # Create the unified commit git commit -m "Add feature/x" # Delete the feature/x branch git branch -D feature/x 
  • rebase 和 merge 的區別:
    • rebase:
      • 提交歷史(的展示)是線性的
      • 缺點:會刪除最近一個 commit,然后創建一次新的 commit
      • 如果已提交到遠程,不要使用 rebase
    • merge:
      • 提交歷史(的展示)是分叉的
      • 對於兩個分支的合並,會創建一個次新的 commit

遠程倉庫管理

  • git remote add <name> <url>:添加一個將被追蹤的遠程倉庫
  • git remote rm <name>:移除一個遠程倉庫
  • git push <remote> <remote-branch>(gp,ggp):將當前分支的本地 commit 推送到遠程倉庫
  • git fetch <remote> <remote-branch>:拉取遠程倉庫的最新 commit 到當前(本地)分支(<remote>/<branch>),不會合並
  • git pull <remote> <remote-branch>(gl,ggl):拉取遠程倉庫的最新 commit 到當前(本地)分支,並自動 merge
    • git pull --rebase(gup):以 rebase 的方式進行合並,而不是 merge

其它有用的命令

  • git tag <name>:創建一個 tag(如:v1.3)
  • git push --tags:將本地 tags 推送到遠程倉庫
  • git push <tag>:推送指定的本地 tag 到遠程

 

展示幫助信息
git help -g 回到遠程倉庫的狀態 拋棄本地所有的修改,回到遠程倉庫的狀態。 git fetch --all && git reset --hard origin/master 重設第一個commit 也就是把所有的改動都重新放回工作區,並清空所有的commit,這樣就可以重新提交第一個commit了 git update-ref -d HEAD 展示工作區和暫存區的不同 輸出工作區和暫存區的different(不同)。 git diff 還可以展示本地倉庫中任意兩個commit之間的文件變動: git diff <commit-id> <commit-id> 展示暫存區和最近版本的不同 輸出暫存區和本地最近的版本(commit)的different(不同)。 git diff --cached 展示暫存區、工作區和最近版本的不同 輸出工作區、暫存區 和本地最近的版本(commit)的different(不同)。 git diff HEAD 快速切換分支 git checkout - 刪除已經合並到master的分支 git branch --merged master | grep -v '^\*\| master' | xargs -n 1 git branch -d 展示本地分支關聯遠程倉庫的情況 git branch -vv 關聯遠程分支 關聯之后,git branch -vv就可以展示關聯的遠程分支名了,同時推送到遠程倉庫直接:git push,不需要指定遠程倉庫了。 git branch -u origin/mybranch 或者在push時加上-u參數 git push origin/mybranch -u 列出所有本地分支 -l參數相當於:local git branch -l 列出所有遠程分支 -r參數相當於:remote git branch -r 列出本地和遠程分支 -a參數相當於:all git branch -a 創建並切換到本地分支 git checkout -b <branch-name> 創建並切換到遠程分支 git checkout -b <branch-name> -t origin/<branch-name> 刪除本地分支 git branch -d <local-branchname> 刪除遠程分支 git push origin --delete <remote-branchname> 或者 git push origin :<remote-branchname> 重命名本地分支 git branch -m <new-branch-name> git branch -m <oldbranchname> <newbranchname>:嘗試修改 git branch -M <oldbranchname> <newbranchname>:強制修改 查看標簽 git tag 展示當前分支的最近的tag git describe --tags --abbrev=0 本地創建標簽 git tag <version-number> 默認tag是打在最近的一次commit上,如果需要指定commit打tag: $ git tag -a <version-number> -m "v1.0 發布(描述)" <commit-id> 推送標簽到遠程倉庫 首先要保證本地創建好了標簽才可以推送標簽到遠程倉庫: git push origin <local-version-number> 一次性推送所有標簽,同步到遠程倉庫: git push origin --tags 刪除本地標簽 git tag -d <tag-name> 刪除遠程標簽 刪除遠程標簽需要先刪除本地標簽,再執行下面的命令: git push origin :refs/tags/<tag-name> 切回到某個標簽 一般上線之前都會打tag,就是為了防止上線后出現問題,方便快速回退到上一版本。下面的命令是回到某一標簽下的狀態: git checkout -b branch_name tag_name 放棄工作區的修改 git checkout <file-name> 放棄所有修改: git checkout . 恢復刪除的文件 git rev-list -n 1 HEAD -- <file_path> #得到 deleting_commit git checkout <deleting_commit>^ -- <file_path> #回到刪除文件 deleting_commit 之前的狀態 回到某一個commit的狀態,並重新增添一個commit //回退,有記錄 git revert <commit-id> 回到某個commit的狀態,並刪除后面的commit 和revert的區別:reset命令會抹去某個commit id之后的所有commit git reset <commit-id> 修改上一個commit的描述 git commit --amend 查看commit歷史 git log 查看某段代碼是誰寫的 blame的意思為‘責怪’,你懂的。 git blame <file-name> 顯示本地執行過git命令 就像shell的history一樣 git reflog 修改作者名 git commit --amend --author='Author Name <email@address.com>' 修改遠程倉庫的url git remote set-url origin <URL> 增加遠程倉庫 git remote add origin <remote-url> 列出所有遠程倉庫 git remote // git remote -v 查看兩個星期內的改動 git whatchanged --since='2 weeks ago' 把A分支的某一個commit,放到B分支上 這個過程需要cherry-pick命令,參考 git checkout <branch-name> && git cherry-pick <commit-id> 給git命令起別名 簡化命令 git config --global alias.<handle> <command> 比如:git status 改成 git st,這樣可以簡化命令 git config --global alias.st status 存儲當前的修改,但不用提交commit 詳解可以參考廖雪峰老師的git教程 git stash 保存當前狀態,包括untracked的文件 untracked文件:新建的文件 git stash -u 展示所有stashes git stash list 回到某個stash的狀態 git stash apply <stash@{n}> 回到最后一個stash的狀態,並刪除這個stash git stash pop 刪除所有的stash git stash clear 從stash中拿出某個文件的修改 git checkout <stash@{n}> -- <file-path> 展示所有tracked的文件 git ls-files -t 展示所有untracked的文件 git ls-files --others 展示所有忽略的文件 git ls-files --others -i --exclude-standard 強制刪除untracked的文件 可以用來刪除新建的文件。如果不指定文件文件名,則清空所有工作的untracked文件。clean命令,注意兩點: clean后,刪除的文件無法找回 不會影響tracked的文件的改動,只會刪除untracked的文件git clean <file-name> -f 強制刪除untracked的目錄 可以用來刪除新建的目錄,注意:這個命令也可以用來刪除untracked的文件。詳情見上一條 git clean <directory-name> -df 展示簡化的commit歷史 git log --pretty=oneline --graph --decorate --all 把某一個分支到導出成一個文件 git bundle create <file> <branch-name> 從包中導入分支 新建一個分支,分支內容就是上面git bundle create命令導出的內容 git clone repo.bundle <repo-dir> -b <branch-name> 執行rebase之前自動stash git rebase --autostash 從遠程倉庫根據ID,拉下某一狀態,到本地分支 git fetch origin pull/<id>/head:<branch-name> 詳細展示一行中的修改 git diff --word-diff 清除gitignore文件中記錄的文件 git clean -X -f 展示所有alias和configs 注意: config分為:當前目錄(local)和全局(golbal)的config,默認為當前目錄的config git config --local --list (當前目錄) git config --global --list (全局) 展示忽略的文件 git status --ignored commit歷史中顯示Branch1有的,但是Branch2沒有commit git log Branch1 ^Branch2 在commit log中顯示GPG簽名 git log --show-signature 刪除全局設置 git config --global --unset <entry-name> 新建並切換到新分支上,同時這個分支沒有任何commit 相當於保存修改,但是重寫commit歷史 git checkout --orphan <branch-name> 展示任意分支某一文件的內容 git show <branch-name>:<file-name> clone下來指定的單一分支 git clone -b <branch-name> --single-branch https://github.com/user/repo.git 忽略某個文件的改動 關閉 track 指定文件的改動,也就是 Git 將不會在記錄這個文件的改動 git update-index --assume-unchanged path/to/file 恢復 track 指定文件的改動 git update-index --no-assume-unchanged path/to/file 忽略文件的權限變化 不再將文件的權限變化視作改動 git config core.fileMode false 展示本地所有的分支的commit 最新的放在最上面 git for-each-ref --sort=-committerdate --format='%(refname:short)' refs/heads/ 在commit log中查找相關內容 通過grep查找,given-text:所需要查找的字段 git log --all --grep='<given-text>' 把暫存區的指定file放到工作區中 git reset <file-name> 強制推送 git push -f <remote-name> <branch-name>列出所有遠程分支 -r參數相當於:remote git branch -r 更新到本地 # 源 + 分支名 git pull origin master

 

初始化本地git倉庫(創建新倉庫)

git init                                                  

# 初始化 git 項目 git init 安裝好 Git 之后,配置你的資料: # 配置用戶名 git config --global user.name "Your Real Name" # 配置郵箱地址 git config --global user.email you@email.address 

配置用戶名

git config --global user.name "xxx"                      

配置郵件

git config --global user.email "xxx@xxx.com"              

git status等命令自動着色

git config --global color.ui true                        

git config --global color.status auto

git config --global color.diff auto

git config --global color.branch auto

git config --global color.interactive auto

clone遠程倉庫

git clone git+ssh://git@192.168.53.168/VT.git            

查看當前版本狀態(是否修改)

git status                                                

添加xyz文件至index

git add xyz                                              

增加當前子目錄下所有更改過的文件至index

git add .                                                

提交

git commit -m 'xxx'                                      

合並上一次提交(用於反復修改)

git commit --amend -m 'xxx'                              

將add和commit合為一步

git commit -am 'xxx'                                      

刪除index中的文件

git rm xxx                                                

遞歸刪除

git rm -r *                                              

顯示提交日志

git log                                                  

顯示1行日志 -n為n行

git log -1                                                

git log -5

顯示提交日志及相關變動文件

git log --stat                                            

git log -p -m

顯示某個提交的詳細內容

git show dfb02e6e4f2f7b573337763e5c0013802e392818        

可只用commitid的前幾位

git show dfb02                                            

顯示HEAD提交日志

git show HEAD                                            

顯示HEAD的父(上一個版本)的提交日志 ^^為上兩個版本 ^5為上5個版本

git show HEAD^                                            

顯示已存在的tag

git tag                                                  

增加v2.0的tag

git tag -a v2.0 -m 'xxx'                                  

顯示v2.0的日志及詳細內容

git show v2.0                                            

顯示v2.0的日志

git log v2.0                                              

顯示所有未添加至index的變更

git diff                                                  

顯示所有已添加index但還未commit的變更

git diff --cached                                        

比較與上一個版本的差異

git diff HEAD^                                            

比較與HEAD版本lib目錄的差異

git diff HEAD -- ./lib                                    

比較遠程分支master上有本地分支master上沒有的

git diff origin/master..master                            

只顯示差異的文件,不顯示具體內容

git diff origin/master..master --stat                    

增加遠程定義(用於push/pull/fetch)

git remote add origin git+ssh://git@192.168.53.168/VT.git

顯示本地分支

git branch                                                

顯示包含提交50089的分支

git branch --contains 50089                              

顯示所有分支

git branch -a                                            

顯示所有原創分支

git branch -r                                            

顯示所有已合並到當前分支的分支

git branch --merged                                      

顯示所有未合並到當前分支的分支

git branch --no-merged                                    

本地分支改名

git branch -m master master_copy                          

從當前分支創建新分支master_copy並檢出

git checkout -b master_copy                              

上面的完整版

git checkout -b master master_copy                        

檢出已存在的features/performance分支

git checkout features/performance                        

檢出遠程分支hotfixes/BJVEP933並創建本地跟蹤分支

git checkout --track hotfixes/BJVEP933                    

檢出版本v2.0

git checkout v2.0                                        

從遠程分支develop創建新本地分支devel並檢出

git checkout -b devel origin/develop                      

檢出head版本的README文件(可用於修改錯誤回退)

git checkout -- README                                    

合並遠程master分支至當前分支

git merge origin/master                                  

合並提交ff44785404a8e的修改

git cherry-pick ff44785404a8e                            

將當前分支push到遠程master分支

git push origin master                                    

刪除遠程倉庫的hotfixes/BJVEP933分支

git push origin :hotfixes/BJVEP933                        

把所有tag推送到遠程倉庫

git push --tags                                          

獲取所有遠程分支(不更新本地分支,另需merge)

git fetch                                                

獲取所有原創分支並清除服務器上已刪掉的分支

git fetch --prune                                        

獲取遠程分支master並merge到當前分支

git pull origin master                                    

重命名文件README為README2

git mv README README2                                    

將當前版本重置為HEAD(通常用於merge失敗回退)

git reset --hard HEAD                                    

git rebase

刪除分支hotfixes/BJVEP933(本分支修改已合並到其他分支)

git branch -d hotfixes/BJVEP933                          

強制刪除分支hotfixes/BJVEP933

git branch -D hotfixes/BJVEP933                          

列出git index包含的文件

git ls-files                                              

圖示當前分支歷史

git show-branch                                          

圖示所有分支歷史

git show-branch --all                                    

顯示提交歷史對應的文件修改

git whatchanged                                          

撤銷提交dfb02e6e4f2f7b573337763e5c0013802e392818

git revert dfb02e6e4f2f7b573337763e5c0013802e392818      

內部命令:顯示某個git對象

git ls-tree HEAD                                          

內部命令:顯示某個ref對於的SHA1 HASH

git rev-parse v2.0                                        

顯示所有提交,包括孤立節點

git reflog                                                

git show HEAD@{5}

顯示master分支昨天的狀態

git show master@{yesterday}                              

圖示提交日志

git log --pretty=format:'%h %s' --graph                  

git show HEAD~3

git show -s --pretty=raw 2be7fcb476

暫存當前修改,將所有至為HEAD狀態

git stash                                                

查看所有暫存

git stash list                                            

參考第一次暫存

git stash show -p stash@{0}                              

應用第一次暫存

git stash apply stash@{0}                                

文件中搜索文本“delete from”

git grep "delete from"                                    

git grep -e '#define' --and -e SORT_DIRENT

 

git gc

git fsck


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM