4 個不可或缺的 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 中了解更多。
via: https://opensource.com/article/20/4/git-extras
作者:Vince Power 選題:lujun9972 譯者:wxy 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive