专为技术写作人员提供的七条 Git 技巧

作为 ATIX 的技术作家,我的任务包括为 Foreman 创建和维护存放在 Github.com/theforeman/foreman-documentation 的文档 。Git 帮助我跟踪内容的版本,并与开源社区进行协作 。它是我存储工作成果、共享和讨论改进的重要工具 。我主要使用的工具包括浏览器、用 OpenSSH 连接 Foreman 实例、用 Vim 编辑源文件,以及使用 Git 进行版本控制 。
本文重点介绍在开始使用 Git 和为 Foreman 文档做贡献时经常遇到的挑战 。适用于中级 Git 用户 。

专为技术写作人员提供的七条 Git 技巧

文章插图
先决条件你已在系统上安装和配置了 Git 。你至少需要设置用户名和电子邮件地址 。
你在 github.com 上拥有一个帐户 。GitHub 本身并不是一个开源项目,但它是许多开源 Git 存储库的托管站点(包括 Foreman 的文档) 。
你已将 foreman-documentation 存储库复刻到你自己的账户或组织(例如,github.com/<My_User_Account>/foreman-documentation,这里 <My_User_Account> 是你的 GitHub 用户名) 。
你已将你的 SSH 公钥添加到 GitHub 。这是将你的更改推送到 GitHub 所必需的 。
对 Foreman 文档做出贡献Foreman 是一个开源项目,依靠社区的贡献而发展壮大 。该项目欢迎所有人的参与,并且只有一些要求才能做出有意义的贡献 。这些要求和惯例在 README.md 和 CONTRIBUTING.md 文件中有详细记录 。
以下是在处理 Foreman 文档时最常见的一些任务 。
我想开始贡献 Foreman 文档1、从 github.com 克隆存储库:
$ git clone git@github.com:theforeman/foreman-documentation.git $ cd foreman-documentation/2、重命名远程存储库:
$ git remote rename origin upstream3、可选:确保你的本地主分支跟踪 theforeman 组织的 foreman-documentation 存储库的 master 分支:
$ git status这将自动将你置于默认分支(本例中为 master)的最新提交上 。
4、如果你的账户或组织中尚未有该存储库的 复刻Fork,请创建一个 。前往 github.com/theforeman/foreman-documentation 并点击 “复刻Fork” 按钮 。
5、将你的复刻添加到你的存储库中:
$ git remote add github git@github.com:<My_User_Account>/foreman-documentation.git你的本地存储库现在有两个远程存储库:upstream 和 github 。
我想扩展 Foreman 文档对于简单的更改,比如修正拼写错误,你可以直接创建一个拉取请求(PR) 。
1、创建一个分支,例如 fix_spelling 。git switch 命令用于切换当前所在的分支,-c 参数用于创建分支:
$ git switch -c fix_spelling2、进行你的更改 。
3、添加你的更改并进行提交:
$ git add guides/common/modules/abc.adoc $ git commit -m "Fix spelling of existing"良好的 Git 提交消息的重要性无需再强调 。提交消息告诉贡献者你做了哪些工作,因为它与代码库的其余部分一起保存,所以它在查看代码时起到历史注释的作用,帮助了解代码的演化过程 。有关优秀的 Git 提交消息的更多信息,请参阅由 cbeams 撰写的 《创建完美的 Git 提交信息的 7 条规则》 。
4、可选但建议的操作:查看并验证与默认分支的差异 。foreman-documentation 的默认分支称为 master,但其他项目可能有不同的命名(例如 mAIn、dev 或 devel) 。
$ git diff master 5、将分支推送到 GitHub 。这将发布你的更改到你的代码库副本: $ git push --set-upstream github fix_spelling6、点击终端中 Git 提供的链接来创建一个拉取请求(PR):
remote: Create a pull request for 'fix_spelling' on Github by visiting: remote: https://github.com/_My_User_Account_/foreman-documentation/pull/new/fix_spelling7、在解释中说明社区为什么应该接受你的更改 。对于修正拼写错误等简单 PR,这并不是必需的,但对于重大更改则很重要 。
我想将我的分支变基到 master1、确保你的本地 master 分支跟踪的是 github.com/theforeman/foreman-documentation 的 master 分支,而不是你自己命名空间下的 foreman-documentation:
$ git switch master此时应该显示 Your branch is up to date with 'upstream/master',其中 upstream 是指向 github.com/theforeman/foreman-documentation 的远程存储库的名称 。你可以通过运行 git remote -v 来查看远程存储库设置情况 。
2、从远程获取可能的更改 。git fetch 命令会从远程下载被跟踪的分支,并且使用 --all 选项可以同时更新所有分支 。在使用其他分支时这是必要的 。--prune 选项会删除对已不存在的分支的引用 。


推荐阅读