10個很有用的高階Git命令
迄今,我已經使用Git很長一段時間了,考慮分享一些不管你是團隊開發還是個人專案,都受用的高階git命令。
1. 輸出最後一次提交的改變
這個命令,我經常使用它 來傳送其他沒有使用git的人來檢查或者整合所修改的。它會輸出最近提交的修改類容到一個zip檔案中。
git archive -o ../updated.zip HEAD $(git diff --name-only HEAD^)
2. 輸出兩個提交間的改變
類似的,如果你需要輸出某兩個提交間的改變時,你可以使用這個。
git archive -o ../latest.zip NEW_COMMIT_ID_HERE $(git diff --name-only OLD_COMMIT_ID_HERE NEW_COMMIT_ID_HERE)
3. 克隆 指定的遠端分支
如果你渴望只克隆遠端倉庫的一個指定分支,而不是整個倉庫分支,這對你幫助很大。
git init git remote add -t BRANCH_NAME_HERE -f origin REMOTE_REPO_URL_PATH_HERE git checkout BRANCH_NAME_HERE
4. 應用 從不相關的本地倉庫來的補丁
如果你需要其它一些不相關的本地倉庫作為你現在倉庫的補丁,這裡就是通往那裡的捷徑。
git --git-dir=PATH_TO_OTHER_REPOSITORY_HERE/.git format-patch -k -1 --stdout COMMIT_HASH_ID_HERE| git am -3 -k
5. 檢測 你的分支的改變是否為其它分支的一部分
cherry命令讓我們檢測你的分支的改變是否出現在其它一些分支中。它通過+或者-符號來顯示從當前分支與所給的分支之間的改變:是否合併了(merged)。.+ 指示沒有出現在所給分支中,反之,- 就表示出現在了所給的分支中了。這裡就是如何去檢測:
git cherry -v OTHER_BRANCH_NAME_HERE #例如: 檢測master分支 git cherry -v master
6.開始一個無歷史的新分支
有時,你需要開始一個新分支,但是又不想把很長很長的歷史記錄帶進來,例如,你想在公眾區域(開源)放置你的程式碼,但是又不想別人知道它的歷史記錄。
git checkout --orphan NEW_BRANCH_NAME_HERE
7. 無切換分支的從其它分支Checkout檔案
不想切換分支,但是又想從其它分支中獲得你需要的檔案:
git checkout BRANCH_NAME_HERE -- PATH_TO_FILE_IN_BRANCH_HERE
8.忽略已追蹤檔案的變動
如果您正在一個團隊中工作,而且大家都在同一條branch上面工作,那麼您很有可能會經常用到fetch和merge。但是有時候這樣會重置您的環境配置檔案,如此的話,您就得在每次merge後修改它。使用這一命令,您就能要求git忽視指定檔案的變動。這樣,下回你再merge的話,這個檔案就不會被修改了。
git update-index --assume-unchanged PATH_TO_FILE_HERE
9.檢查提交的變動是否是release的一部分
name-rev命令能告訴您一個commit相對於最近一次release的位置。使用這條命令,您就可以檢查您所做出的改動是否是release的一部分了。
git name-rev --name-only COMMIT_HASH_HERE
10.使用rebase推送而非merge
如果您正在團隊中工作並且整個團隊都在同一條branch上面工作,那麼您就得經常地進行fetch/merge或者pull。Git中,分支的合併以所提交的merge來記錄,以此表明一條feature分支何時與主分支合併。但是在多團隊成員共同工作於一條branch的情形中,常規的merge會導致log中出現多條訊息,從而產生混淆。因此,您可以在pull的時候使用rebase,以此來減少無用的merge訊息,從而保持歷史記錄的清晰。
git pull --rebase
您也可以將某條branch配置為總是使用rebase推送:
git config branch.BRANCH_NAME_HERE.rebase true
相關文章
- git高階命令學習記錄Git
- Git進階命令-resetGit
- Git進階命令-revertGit
- Linux高階命令Linux
- 你可能不太會用的10個Git命令Git
- 在 Linux 下 9 個有用的 touch 命令示例Linux
- 10個超級有用的Python工具!Python
- Git原理與高階使用(1)Git
- Git原理與高階使用(2)Git
- Git原理與高階使用(3)Git
- Git原理與高階使用(4)Git
- 提升開發技能:10個高階的JavaScript技巧JavaScript
- 超實用的 Linux 高階命令!Linux
- gdb高階除錯命令高階除錯
- 九個常用的網路命令 ,很實用!
- 高階 Java 必須突破的 10 個知識點!Java
- 高階Java必須突破的10個知識點!Java
- 您可能不瞭解git log的有用技巧 - Git BetterGit
- 如何克服解決Git衝突的恐懼症?(Git高階篇)Git
- 介紹 10 個有用的 Flutter 軟體包Flutter
- Linux下more命令高階用法Linux
- Linux下mv命令高階用法Linux
- Linux下 ls 命令的高階用法8例Linux
- 如何克服解決Git衝突的恐懼症?(Git高階話題)Git
- Git的命令Git
- 10個有用的自定義鉤子vue.jsVue.js
- VI高階命令集錦(zt)
- 很有用的 GCC 命令列選項GC命令列
- 有用 AT 命令測試過晶片的嗎?晶片
- 高階Java必看的10本書Java
- 10 篇對初學者和專家都有用的 Linux 命令教程Linux
- 運維一定要懂的Linux高階命令運維Linux
- 20個你(可能)不知道的Git命令Git
- JB的git之旅-git命令列Git命令列
- 非常有用的Linux系統操作命令Linux
- ps命令的10個例子
- 10箇中級到高階的SQL概念SQL
- 接上篇:Git Worktree 高階使用,這樣清爽多了Git
- Git基礎命令之git rebase命令Git