GitHub 進階技巧

alias 命令縮寫

  • 設置縮寫別名:
    **git config --global alias.co checkout **
    git config --global alias.ci commit
    git config --global alias.st status
    git config --global alias.br branch
    以后就可以用縮寫代替了:
    git co
    git ci
    git st
    git br
  • 還可以設置組合縮寫:
    git config --global alias.psm 'push origin master'
    git config --global alias.plm 'pull origin master'
  • 更好看的 log:
    git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative

    利用縮寫:
    git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
    以后用 git lg 就行了。

stash

假設我們正在一個新的分支做新的功能,這個時候突然有一個緊急的 bug 需要修復,而且修復完之后需要立即發布。當然你說我先把剛寫的一點代碼進行提交不就行了么?這樣理論上當然是 ok 的,但是這會產生垃圾 commit,原則上我們每次的 commit 都要有實際的意義,你的代碼只是剛寫了一半,還沒有什么實際的意義是不建議就這樣 commit 的,那么有沒有一種比較好的辦法,可以讓我暫時切到別的分支,修復完 bug 再切回來,而且代碼也能保留的呢?

  • 前提是代碼沒有進行 commit ,哪怕執行了 add 也沒關系,先執行:
    git stash
    就是把當前分支所有沒有 commit 的代碼先暫存起來。
  • 查看暫存區記錄:
    git stash list
  • 事情做完了,要還原代碼:
    git stash apply
  • 最后最好需要把暫存區的這次 stash 記錄刪除:
    git stash drop
    后面可以跟 stash_id 參數來刪除指定的某條記錄,不跟參數就是刪除最近的。
    或:
    git stash pop
    不但會幫你把代碼還原,還自動幫你把這條 stash 記錄刪除。
  • 清空所有暫存區的記錄:
    git stash clear

merge & rebase

  • 要合并分支,可以:
    git checkout master
    git merge featureA
    或:
    git checkout master
    git rebase featureA
  • 區別在于:
    rebasemerge 的區別你們可以理解成有兩個書架,你需要把兩個書架的書整理到一起去,第一種做法是 merge ,比較粗魯暴力,就直接騰出一塊地方把另一個書架的書全部放進去,雖然暴力,但是這種做法你可以知道哪些書是來自另一個書架的;第二種做法就是 rebase ,他會把兩個書架的書先進行比較,按照購書的時間來給他重新排序,然后重新放置好,這樣做的好處就是合并之后的書架看起來很有邏輯,但是你很難清晰的知道哪些書來自哪個書架。

  • 查看配置;
    git config -l
  • 比較兩次提交之間的差異:
    git diff <$id1> <$id2>
  • 在兩個分支之間比較:
    git diff <branch1>..<branch2>
  • 比較暫存區和版本庫差異:
    git diff --staged
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 申金鑫 17101223365 轉載自微信公眾號 stormzhang 【嵌牛導讀】:本教程詳細介紹了Github...
    Felixxin閱讀 413評論 0 2
  • 1.GitHub 有什么用 學習優秀的開源項目開源社區一直有一句流行的話叫「不要重復發明輪子」,某種意義上正是因為...
    Clemente閱讀 1,454評論 1 14
  • Add & Commit git init 初始化一個 Git 倉庫(repository),即把當前所在目錄變成...
    冬絮閱讀 4,924評論 0 9
  • 一、常見命令 git init : 初始化 git 倉庫,即將一個文件夾初始化為一個 git 倉庫。具體的操作是創...
    胖三斤66閱讀 805評論 0 1
  • 輸入 y ,創建 git_hug 目錄No githug directory found, do you wish...
    風花花閱讀 1,982評論 0 4