4 個不可或缺的 Git 指令碼

2020-05-03 21:15:00

Git Extras 版本庫包含了 60 多個指令碼,它們是 Git 基本功能的補充。以下是如何安裝、使用和貢獻的方法。

2005 年,Linus Torvalds 建立了 Git,以取代他之前用於維護 Linux 核心的分散式原始碼控制管理的專有解決方案。從那時起,Git 已經成為開源和雲原生開發團隊的主流版本控制解決方案。

但即使是像 Git 這樣功能豐富的應用程式,也沒有人們想要或需要的每個功能,所以會有人花大力氣去建立這些缺少的功能。就 Git 而言,這個人就是 TJ Holowaychuk。他的 Git Extras 專案承載了 60 多個“附加功能”,這些功能擴充套件了 Git 的基本功能。

使用 Git 附加功能

下面介紹一下如何使用四種最受歡迎的 Git 附加功能。

git-ignore

git ignore 是一個方便的附加功能,它可以讓你手動新增檔案型別和注釋到 .git-ignore 檔案中,而不需要開啟文字編輯器。它可以操作你的個人使用者帳戶的全域性忽略檔案和單獨用於你正在工作的版本庫中的忽略檔案。

在不提供引數的情況下執行 git ignore 會先列出全域性忽略檔案,然後是原生的忽略檔案。

$ git ignoreGlobal gitignore: /home/alice/.gitignore# Numerous always-ignore extensions*.diff*.err*.orig*.rej*.swo*.swp*.vi*~*.sass-cache# OS or Editor foldersThumbs.db---------------------------------Local gitignore: .gitignorenbproject

git-info

git info 可以檢索你所需要的所有資訊,以獲取你正在使用的版本庫的上下文資訊。它包括遠端 URL、遠端分支、本地分支、設定資訊和最後一次的提交資訊。

$ git info## Remote URLs:origin      [email protected]:sampleAuthor/git-extras.git (fetch)origin      [email protected]:sampleAuthor/git-extras.git (push)## Remote Branches:origin/HEAD -> origin/masterorigin/myBranch## Local Branches:myBranch* master## Most Recent Commit:commit e3952df2c172c6f3eb533d8d0b1a6c77250769a7Author: Sample Author <[email protected]>Added git-info command.Type ´git log´ for more commits, or ´git show <commit id>´ for full commit details.## Configuration (.git/config):color.diff=autocolor.status=autocolor.branch=autouser.name=Sample Authoruser.email=sampleAuthor@gmail.comcore.repositoryformatversion=0core.filemode=truecore.bare=falsecore.logallrefupdates=truecore.ignorecase=trueremote.origin.fetch=+refs/heads/*:refs/remotes/origin/*[email protected]:mub/git-extras.gitbranch.master.remote=originbranch.master.merge=refs/heads/master

git-mr 和 git-pr

這些附加功能的作用類似,工作方式也基本相同。

  • git mr 檢出來自 GitLab 的合併請求。
  • git pr 檢出來自 GitHub 的拉取請求。

無論是哪種情況,你只需要合併請求號/拉取請求號或完整的 URL,它就會抓取遠端參照,檢出分支,並調整設定,這樣 Git 就知道要替換哪個分支了。

$ git mr 51From gitlab.com:owner/repository * [new ref]         refs/merge-requests/51/head -> mr/51Switched to branch 'mr/51'

git-release

通過將 committagpush 合併到一個命令中,git release 可以節省大量的按鍵來執行這三個命令,而這三個命令往往是依次執行的。

要用特定的 <tagname> 和自定義訊息提交:

$ git release 0.1.0 -m <+ powerful feature added>

其他附加功能

這只是該版本庫中 60 多個 Git 附加功能中的四個命令。要存取 Git Extras 中的全部命令,請檢視該原始碼庫中的 Commands.md 檔案,或者在安裝 Git Extras 後執行以下命令。

$ git extras --help

安裝 Git 附加功能

使用 Git 附加功能的主要前提是安裝了 Git 的命令列版本。如果你打算從原始碼中構建,還需要有額外的工具(例如:make)。

如果你使用的是最新版本的 macOS,那麼 Git 附加功能的安裝最好使用 Homebrew(和大多數開源工具一樣)。

$ brew install git-extras

在 Linux 上,每個平台原生的包管理器中都包含有 Git Extras。有時,你需要啟用額外的倉庫,比如在 CentOS 上的 EPEL,然後執行一條命令。

$ sudo yum install git-extras

其他 Linux 發行版、BSD 和其他平台的完整安裝說明可以在該版本庫的 Installation.md 檔案中找到。

貢獻

你是否認為 Git 中有缺少的功能,並且已經構建了一個指令碼來處理它?為什麼不把它作為 Git Extras 發布版的一部分,與全世界分享呢?

要做到這一點,請將該功能貢獻到 Git Extras 倉庫中。更多具體細節請參見倉庫中的 CONTRIBUTING.md 檔案,但基本的操作方法很簡單:

  1. 建立一個處理該功能的 Bash 指令碼。
  2. 建立一個基本的 man 檔案,讓大家知道如何使用它。
  3. 更新命令列表和補完指令碼,讓人們知道這個功能的存在。
  4. 執行完整性檢查,確保你沒有破壞任何東西。
  5. 為你的功能建立一個拉取請求。

向 Git Extras 貢獻貢獻,會讓你的 Git 使用者的生活更輕鬆一些。你可以在專案的 README 中了解更多。