Linux中國

五個提升你的 Git 水平的命令

如果你經常使用 Git,你可能會知道它非常有名。它可能是最受歡迎的版本控制方案,它被一些 最大的軟體項目 用來 跟蹤文件變更Git 提供了 健壯的界面 來審閱代碼、把實驗性的變更合併到已經存在的文件中。得益於 Git 鉤子,它以靈活性而聞名。同時,也因為它的強大,它給人們留下了一個「複雜」的印象。

Git 有諸多特性,你不必全部使用,但是如果你正在深入研究 Git 的 子命令 subcommands ,我這裡倒是有幾個,或許你會覺得有用。

1、找到變更

如果你已經熟悉 Git 的基本指令(fetchaddcommitpushlog 等等),但是希望學習更多,那麼從 Git 的檢索子命令開始是一個簡單安全的選擇。檢索你的 Git 倉庫(你的 工作樹)並不會做出任何更改,它只是一個報告機制。你不會像使用 git checkout 一樣承擔數據完整性的風險,你只是在向 Git 請求倉庫的當前狀態和歷史記錄而已。

git whatchanged 命令(幾乎本身就是一個助記符)可以查看哪些文件在某個 提交 commit 中有變更、分別做了什麼變更。它是一個簡單的、用戶友好的命令,因為它把 showdiff-treelog 這三個命令的最佳功能整合到了一個好記的命令中。

2、使用 git stash 管理變更

你越多地使用 Git,你就會使用 Git 越多。這就是說,一旦你習慣了 Git 的強大功能,你就會更頻繁地使用它。有時,你正在處理一大堆文件,忽然意識到了有更緊急的任務要做。這時,在 git stash 的幫助下,你就可以把所有正在進行的工作收集起來,然後安全地 暫存 stash 它們。當你的工作空間變得整潔有序,你就可以把注意力放到別的任務上,晚些時候再把暫存的文件重新載入到工作樹里,繼續之前的工作。

3、使用 git worktree 來得到鏈接的副本

git stash 不夠用的時候,Git 還提供了強大的 git worktree 命令。有了它,你可以新建一個 鏈接的 倉庫 副本 clone ,組成一個新分支,把 HEAD 設置到任意一個提交上,然後基於這個分支開始你的新工作。在這個鏈接的副本里,你可以進行和主副本完全不同的任務。這是一個避免意外的變更影響當前工作的好辦法。當你完成了你的新工作,你可以把新分支推送到遠程倉庫;也可以把當前的變更歸檔,晚些時候再處理;還可以從別的工作樹中獲取它們的變更。無論選擇哪一種,你的工作空間之間都會保持相互隔離,任一空間中的變更都不會影響其他空間中的變更,直到你準備好了要合併它們。

4、使用 git cherry-pick 來選擇合併

這可能聽起來很反直覺,但是,你的 Git 水平越高,你可能遇到的合併衝突就會越多。這是因為合併衝突不一定是錯誤的標誌,而是活躍的標誌。在學習 Git 中,適應合併時的衝突,並學會如何解決它們是非常重要的。通常的方式或許夠用,但是有時候你會需要更加靈活地進行合併,這時候就該 git cherry-pick 出場了。遴選操作允許你選擇部分合併提交,這樣一來你就不需要因為一些細微的不協調而拒絕整個合併請求了。

5、使用 Git 來管理 $HOME

使用 Git 來管理你的主目錄從來沒有這麼簡單過,這都要歸功於 Git 可以自由選擇管理對象的能力,這是一個在多台計算機之間保持同步的現實可行的選項。但是,想要讓它工作順利,你必須非常明智且謹慎才行。如果你想要了解更多,點擊閱讀我寫的關於 使用 Git 來管理 $HOME 的小技巧。

更好地使用 Git

Git 是一個強大的版本控制系統,你使用得越熟練,就可以越輕鬆地藉助它來完成複雜的任務。今天就嘗試一些新的 Git 命令吧,歡迎在評論區分享你最喜歡的 Git 命令。

via: https://opensource.com/article/21/4/git-commands

作者:Seth Kenlon 選題:lujun9972 譯者:lkxed 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國