4個(gè)不可或缺的Git腳本
Git Extras 版本庫包含了 60 多個(gè)腳本,它們是 Git 基本功能的補(bǔ)充。以下是如何安裝、使用和貢獻(xiàn)的方法。
2005 年,Linus Torvalds 創(chuàng)建了 Git,以取代他之前用于維護(hù) Linux 內(nèi)核的分布式源碼控制管理的專有解決方案。從那時(shí)起,Git 已經(jīng)成為開源和云原生開發(fā)團(tuán)隊(duì)的主流版本控制解決方案。
但即使是像 Git 這樣功能豐富的應(yīng)用程序,也沒有人們想要或需要的每個(gè)功能,所以會有人花大力氣去創(chuàng)建這些缺少的功能。就 Git 而言,這個(gè)人就是 TJ Holowaychuk。他的 Git Extras 項(xiàng)目承載了 60 多個(gè)“附加功能”,這些功能擴(kuò)展了 Git 的基本功能。
使用 Git 附加功能
下面介紹一下如何使用四種最受歡迎的 Git 附加功能。
git-ignore
git ignore
是一個(gè)方便的附加功能,它可以讓你手動(dòng)添加文件類型和注釋到 .git-ignore
文件中,而不需要打開文本編輯器。它可以操作你的個(gè)人用戶帳戶的全局忽略文件和單獨(dú)用于你正在工作的版本庫中的忽略文件。
在不提供參數(shù)的情況下執(zhí)行 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
可以檢索你所需要的所有信息,以獲取你正在使用的版本庫的上下文信息。它包括遠(yuǎn)程 URL、遠(yuǎn)程分支、本地分支、配置信息和最后一次的提交信息。
$ 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,它就會抓取遠(yuǎn)程引用,檢出分支,并調(diào)整配置,這樣 Git 就知道要替換哪個(gè)分支了。
$ 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
合并到一個(gè)命令中,git release
可以節(jié)省大量的按鍵來執(zhí)行這三個(gè)命令,而這三個(gè)命令往往是依次運(yùn)行的。
要用特定的 <tagname>
和自定義消息提交:
$ git release 0.1.0 -m <+ powerful feature added>
其他附加功能
這只是該版本庫中 60 多個(gè) Git 附加功能中的四個(gè)命令。要訪問 Git Extras 中的全部命令,請查看該源代碼庫中的 Commands.md 文件,或者在安裝 Git Extras 后運(yùn)行以下命令。
$ git extras --help
安裝 Git 附加功能
使用 Git 附加功能的主要前提是安裝了 Git 的命令行版本。如果你打算從源碼中構(gòu)建,還需要有額外的工具(例如:make
)。
如果你使用的是最新版本的 macOS,那么 Git 附加功能的安裝最好使用 Homebrew(和大多數(shù)開源工具一樣)。
$ brew install git-extras
在 Linux 上,每個(gè)平臺原生的包管理器中都包含有 Git Extras。有時(shí),你需要啟用額外的倉庫,比如在 CentOS 上的 EPEL,然后運(yùn)行一條命令。
$ sudo yum install git-extras
其他 Linux 發(fā)行版、BSD 和其他平臺的完整安裝說明可以在該版本庫的 Installation.md 文件中找到。
貢獻(xiàn)
你是否認(rèn)為 Git 中有缺少的功能,并且已經(jīng)構(gòu)建了一個(gè)腳本來處理它?為什么不把它作為 Git Extras 發(fā)布版的一部分,與全世界分享呢?
要做到這一點(diǎn),請將該功能貢獻(xiàn)到 Git Extras 倉庫中。更多具體細(xì)節(jié)請參見倉庫中的 CONTRIBUTING.md 文件,但基本的操作方法很簡單:
- 創(chuàng)建一個(gè)處理該功能的 Bash 腳本。
- 創(chuàng)建一個(gè)基本的 man 文件,讓大家知道如何使用它。
- 更新命令列表和補(bǔ)完腳本,讓人們知道這個(gè)功能的存在。
- 運(yùn)行完整性檢查,確保你沒有破壞任何東西。
- 為你的功能創(chuàng)建一個(gè)拉取請求。
向 Git Extras 貢獻(xiàn)貢獻(xiàn),會讓你的 Git 用戶的生活更輕松一些。你可以在項(xiàng)目的 README 中了解更多。