4個不可或缺的Git腳本
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 ignore
Global gitignore: /home/alice/.gitignore
# Numerous always-ignore extensions
*.diff
*.err
*.orig
*.rej
*.swo
*.swp
*.vi
*~
*.sass-cache
# OS or Editor folders
Thumbs.db
---------------------------------
Local gitignore: .gitignore
nbproject
git-info
git info
可以檢索你所需要的所有信息,以獲取你正在使用的版本庫的上下文信息。它包括遠程 URL、遠程分支、本地分支、配置信息和最后一次的提交信息。
$ git info
## Remote URLs:
origin git@github.com:sampleAuthor/git-extras.git (fetch)
origin git@github.com:sampleAuthor/git-extras.git (push)
## Remote Branches:
origin/HEAD -> origin/master
origin/myBranch
## Local Branches:
myBranch
* master
## Most Recent Commit:
commit e3952df2c172c6f3eb533d8d0b1a6c77250769a7
Author: Sample Author <sampleAuthor@gmail.com>
Added git-info command.
Type ´git log´ for more commits, or ´git show <commit id>´ for full commit details.
## Configuration (.git/config):
color.diff=auto
color.status=auto
color.branch=auto
user.name=Sample Author
user.email=sampleAuthor@gmail.com
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=git@github.com:mub/git-extras.git
branch.master.remote=origin
branch.master.merge=refs/heads/master
git-mr 和 git-pr
這些附加功能的作用類似,工作方式也基本相同。
git mr
檢出來自 GitLab 的合并請求。git pr
檢出來自 GitHub 的拉取請求。
無論是哪種情況,你只需要合并請求號/拉取請求號或完整的 URL,它就會抓取遠程引用,檢出分支,并調整配置,這樣 Git 就知道要替換哪個分支了。
$ git mr 51
From gitlab.com:owner/repository
* [new ref] refs/merge-requests/51/head -> mr/51
Switched to branch 'mr/51'
git-release
通過將 commit
、tag
和 push
合并到一個命令中,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 文件,但基本的操作方法很簡單:
- 創建一個處理該功能的 Bash 腳本。
- 創建一個基本的 man 文件,讓大家知道如何使用它。
- 更新命令列表和補完腳本,讓人們知道這個功能的存在。
- 運行完整性檢查,確保你沒有破壞任何東西。
- 為你的功能創建一個拉取請求。
向 Git Extras 貢獻貢獻,會讓你的 Git 用戶的生活更輕松一些。你可以在項目的 README 中了解更多。