网易首页 > 网易号 > 正文 申请入驻

专为技术写作人员提供的 7 条 Git 技巧 | Linux 中国

0
分享至

导读:跟随这个演示来了解我如何使用 Git 为 Foreman 编写文档。                     

本文字数:5529,阅读时长大约: 7分钟

https://linux.cn/article-16044-1.html
作者:Maximilian Kolb
译者:ChatGPT


跟随这个演示来了解我如何使用 Git 为 Foreman 编写文档。

作为 atix.de 的技术作家,我的任务包括为 opensource.com 创建和维护存放在 github.com 的文档。Git 帮助我跟踪内容的版本,并与开源社区进行协作。它是我存储工作成果、共享和讨论改进的重要工具。我主要使用的工具包括浏览器、用 OpenSSH 连接 Foreman 实例、用 opensource.com 编辑源文件,以及使用 Git 进行版本控制。

本文重点介绍在开始使用 Git 和为 Foreman 文档做贡献时经常遇到的挑战。适用于中级 Git 用户。

先决条件

◈ 你已在系统上安装和配置了 Git。你至少需要设置用户名和电子邮件地址。

◈ 你在 github.com 上拥有一个帐户。GitHub 本身并不是一个开源项目,但它是许多开源 Git 存储库的托管站点(包括 Foreman 的文档)。

◈ 你已将 github.com 存储库复刻到你自己的账户或组织(例如, github.com//foreman-documentation,这里 是你的 GitHub 用户名)。有关更多信息,请参阅 Kedar Vijay Kulkarni 的 opensource.com。

◈ 你已将你的 SSH 公钥添加到 GitHub。这是将你的更改推送到 GitHub 所必需的。有关更多信息,请参阅 Nicole C. Baratta 的《 opensource.com》。

对 Foreman 文档做出贡献

Foreman 是一个开源项目,依靠社区的贡献而发展壮大。该项目欢迎所有人的参与,并且只有一些要求才能做出有意义的贡献。这些要求和惯例在 github.com 和 github.com 文件中有详细记录。

以下是在处理 Foreman 文档时最常见的一些任务。

我想开始贡献 Foreman 文档

1、从 github.com 克隆存储库:

  1. $ git clone git@github.com:theforeman/foreman-documentation.git

  2. $ cd foreman-documentation/

2、重命名远程存储库:

  1. $ git remote rename origin upstream

3、可选:确保你的本地主分支跟踪 theforeman 组织的 foreman-documentation 存储库的 master 分支:

  1. $ git status

这将自动将你置于默认分支(本例中为 master)的最新提交上。

4、如果你的账户或组织中尚未有该存储库的 复刻(Fork),请创建一个。前往 github.com 并点击 “复刻(Fork)” 按钮。

5、将你的复刻添加到你的存储库中:

  1. $ git remote add github git@github.com:/foreman-documentation.git

你的本地存储库现在有两个远程存储库:upstreamgithub

我想扩展 Foreman 文档

对于简单的更改,比如修正拼写错误,你可以直接创建一个拉取请求(PR)。

1、创建一个分支,例如 fix_spellinggit switch 命令用于切换当前所在的分支,-c 参数用于创建分支:

  1. $ git switch -c fix_spelling

2、进行你的更改。

3、添加你的更改并进行提交:

  1. $ git add guides/common/modules/abc.adoc

  2. $ git commit -m "Fix spelling of existing"

良好的 Git 提交消息的重要性无需再强调。提交消息告诉贡献者你做了哪些工作,因为它与代码库的其余部分一起保存,所以它在查看代码时起到历史注释的作用,帮助了解代码的演化过程。有关优秀的 Git 提交消息的更多信息,请参阅由 cbeams 撰写的 《 cbea.ms》。

4、可选但建议的操作:查看并验证与默认分支的差异。foreman-documentation 的默认分支称为 master,但其他项目可能有不同的命名(例如 maindevdevel)。

  1. $ git diff master

5、将分支推送到 GitHub。这将发布你的更改到你的代码库副本:

  1. $ git push --set-upstream github fix_spelling

6、点击终端中 Git 提供的链接来创建一个拉取请求(PR):

  1. remote: Create a pull request for 'fix_spelling' on Github by visiting:

  2. remote: https://github.com/_My_User_Account_/foreman-documentation/pull/new/fix_spelling

7、在解释中说明社区为什么应该接受你的更改。对于修正拼写错误等简单 PR,这并不是必需的,但对于重大更改则很重要。

我想将我的分支变基到 master

1、确保你的本地 master 分支跟踪的是 github.com 的 master 分支,而不是你自己命名空间下的 foreman-documentation

  1. $ 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 选项会删除对已不存在的分支的引用。

  1. $ git fetch --all --prune

3、将可能的更改从 upstream/master 拉取到你的本地 master 分支。git pull 命令将跟踪的分支上的提交复制到当前分支。这用于将你的本地 master 分支“更新”为远程(在本例中为 GitHub)master 分支的最新状态。

  1. $ git pull

4、将你的分支 变基(rebase) 到 master

  1. $ git switch my_branch

  2. $ git rebase -i master

我在 master 分支上意外地提交了代码

1、创建一个分支来保存你的工作:

  1. $ git switch -c my_feature

2、切换回 master 分支:

  1. $ git switch master

3、回退 master 分支上的最后一次提交:

  1. $ git reset --soft HEAD~1

4、切换回 my_feature 分支并继续工作:

  1. $ git switch my_feature

我想修改我的提交消息

1、如果你的分支只有一次提交,可以使用 git amend 来修改你的最后一次提交:

  1. $ git commit --amend

这假设你没有将其他文件添加到暂存区(即,没有运行过 git add My_File,并且没有进行提交)。

2、使用 --force 选项将你的 “更改” 推送到 GitHub,因为 Git 提交消息是你现有提交的一部分,所以你正在更改分支上的历史记录:

  1. $ git push --force

我想重新整理单个分支上的多个更改

1、可选但强烈推荐:从 GitHub 获取更改。

  1. $ git switch master

  2. $ git fetch

  3. $ git pull

这确保你将其他更改按照它们被合并到 master 中的顺序直接合并到你的分支中。

2、若要重新整理你的工作,请对你的分支进行变基并根据需要进行更改。对于将分支变基到 master,这意味着你需要更改你的分支上第一个提交的父提交:

  1. $ git rebase --interactive master

使用你喜欢的编辑器打开变基交互界面,将第一个单词 pick 替换为你要修改的提交。

◈ 使用 e 来对你的提交进行实际更改。这会中断你的变基操作!

◈ 使用 f 将一个提交与其父提交合并。

◈ 使用 d 完全删除一个提交。

◈ 移动行以改变你更改的顺序。

成功进行变基后,你自己的提交将位于 master 上最后一个提交的顶部。

我想从其他分支复制一个提交

1、从稳定分支(例如名为 3.3 的分支)获取提交的 ID,请使用 -n 选项限制提交数量:

  1. $ git log -n 5 3.3

2、通过挑选提交来复制更改到你的分支。-x 选项将提交的 ID 添加到你的提交消息中。这仅建议在从稳定分支挑选提交时使用:

  1. $ git switch My_Branch

  2. $ git cherry-pick -x Commit_ID

更多技巧

在 ATIX,我们运行一个 about.gitlab.com 实例,用于内部共享代码、协作以及自动化测试和构建。对于围绕 Foreman 生态系统的开源社区,我们依赖于 GitHub。

我建议你始终将名为 origin 的远程指向你的内部的版本控制系统。这样做可以防止在纯粹凭记忆进行 git push 时向外部服务泄露信息。

此外,我建议使用固定的命名方案来命名远程。我总是将指向自己的 GitLab 实例的远程命名为 origin,将指向开源项目的远程命名为 upstream,将指向我在 Github 上的复刻的远程命名为 github

对于 foreman-documentation,该存储库具有相对较平的历史记录。当处理更复杂结构时,我倾向于以非常可视化的方式思考 Git 存储库,其中节点(提交)指向线上的节点(分支),这些分支可以交织在一起。图形化工具如 gitk 或 opensource.com 可以帮助可视化你的 Git 历史记录。一旦你完全掌握了 Git 的工作原理,如果你更喜欢命令行,可以使用别名。

在进行具有大量预期合并冲突的大型变基之前,我建议创建一个“备份”分支,以便你可以快速查看差异。请注意,要永久删除提交是相当困难的,因此在进行重大更改之前,请在本地 Git 存储库中进行测试。

Git 对技术文档编写者的帮助

Git 对技术文档编写者来说是一个巨大的帮助。不仅可以使用 Git 对文档进行版本控制,还可以与他人积极地进行协作。

(题图:MJ/1fb1dd43-e460-4e76-9ff6-b6ef76570f7e)

via:

作者: 选题: 译者:ChatGPT 校对:

本文由 原创编译, 荣誉推出

欢迎遵照 CC-BY-SA 协议规定转载,

如需转载,请在文章下留言 “ 转载:公众号名称”,

我们将为您添加白名单,授权“ 转载文章时可以修改”。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
有上市公司因拖欠18万税款,被要求补缴滞纳金3500多万?

有上市公司因拖欠18万税款,被要求补缴滞纳金3500多万?

小萝卜丝
2024-06-20 17:34:45
“爆破大王”用淋满煤油的公鸡去“爆破”敌人的碉堡,结果很神奇

“爆破大王”用淋满煤油的公鸡去“爆破”敌人的碉堡,结果很神奇

寻史奇谈
2024-06-19 10:05:39
“女子被困精神病院超10年”追踪:现已出院并找到工作,社区干部称其父一直有交生活费

“女子被困精神病院超10年”追踪:现已出院并找到工作,社区干部称其父一直有交生活费

红星新闻
2024-06-20 19:00:30
大赛型选手!沙奇里收获大赛第10球,欧洲杯10场5球世界杯12场5球

大赛型选手!沙奇里收获大赛第10球,欧洲杯10场5球世界杯12场5球

直播吧
2024-06-20 04:13:04
人民币兑俄罗斯卢布大跌,市场担忧人民币受西方制裁

人民币兑俄罗斯卢布大跌,市场担忧人民币受西方制裁

蓝色海边
2024-06-20 21:36:41
姜萍中专同学被找到,确认其月考数学成绩只有83分,有准考证可以证明

姜萍中专同学被找到,确认其月考数学成绩只有83分,有准考证可以证明

小萝卜丝
2024-06-20 21:06:54
中国香港海关查获596颗高端CPU:走私中国内地,价值1120万!Intel至强处理器,可支持AI加速计算、云服务

中国香港海关查获596颗高端CPU:走私中国内地,价值1120万!Intel至强处理器,可支持AI加速计算、云服务

和讯网
2024-06-20 16:09:32
世界女排联赛总决赛打响,中国女排0比3不敌日本无缘四强

世界女排联赛总决赛打响,中国女排0比3不敌日本无缘四强

澎湃新闻
2024-06-20 19:22:28
中国游客在韩旅行,被240斤的酒店员工强奸,抓捕十小时后被释放

中国游客在韩旅行,被240斤的酒店员工强奸,抓捕十小时后被释放

社会酱
2024-06-20 17:39:36
离谱!24岁女偶像参加涉毒男星生日聚会,直接坐在桌边陪着赌博

离谱!24岁女偶像参加涉毒男星生日聚会,直接坐在桌边陪着赌博

萌神木木
2024-06-19 18:26:18
半岛从未有过如此协议:普京签了、金正恩签了,中国扛着压力表态

半岛从未有过如此协议:普京签了、金正恩签了,中国扛着压力表态

千里持剑
2024-06-20 14:54:45
中联部部长在海参崴出席“抵制新殖民主义”论坛,让人如鲠在喉

中联部部长在海参崴出席“抵制新殖民主义”论坛,让人如鲠在喉

顾礼先生
2024-06-20 14:53:15
前瞻|普京第五次到访越南,全面战略伙伴或讨论武器及双边支付

前瞻|普京第五次到访越南,全面战略伙伴或讨论武器及双边支付

澎湃新闻
2024-06-20 12:26:32
【“6·26”国际禁毒日】金秀法院“集中宣判+普法宣传”齐上阵, 筑牢“拒毒”防火墙

【“6·26”国际禁毒日】金秀法院“集中宣判+普法宣传”齐上阵, 筑牢“拒毒”防火墙

金秀法院
2024-06-20 20:21:48
“消失”两年后被查的“老虎”,敛财20年!

“消失”两年后被查的“老虎”,敛财20年!

政知新媒体
2024-06-20 17:38:24
普京到越南了,等待他的,是“竹子”

普京到越南了,等待他的,是“竹子”

寰宇大观察
2024-06-20 19:46:33
意大利拒绝欧尔班加入欧洲议员小组!匈牙利何去何从?

意大利拒绝欧尔班加入欧洲议员小组!匈牙利何去何从?

项鹏飞
2024-06-20 19:28:59
沪指险守3000点,悬着的心还在悬着

沪指险守3000点,悬着的心还在悬着

每经牛眼
2024-06-20 15:49:04
还是斧头好用,一砸一个洞,菲律宾补给船全军覆没

还是斧头好用,一砸一个洞,菲律宾补给船全军覆没

三叔的装备空间
2024-06-20 11:05:19
中央财大教授对11万人测量研究得出结论:阴茎越短智商越高!

中央财大教授对11万人测量研究得出结论:阴茎越短智商越高!

兵叔评说
2024-06-20 12:04:40
2024-06-21 03:12:49
Linux
Linux
Linux 中国开源社区
8016文章数 73124关注度
往期回顾 全部

科技要闻

小米SU7流量泼天,富贵却被蔚来接住了

头条要闻

欧洲杯:凯恩破门 英格兰1-1丹麦

头条要闻

欧洲杯:凯恩破门 英格兰1-1丹麦

体育要闻

千夫所指的关系户 成了拯救葡萄牙的英雄

娱乐要闻

叶舒华参加柯震东生日聚会,五毒俱全

财经要闻

楼市新“王炸”!释放何信号?

汽车要闻

售价11.79-14.39万元 新一代哈弗H6正式上市

态度原创

教育
房产
健康
数码
军事航空

教育要闻

学霸的题目,当然要学霸来做了!学渣挤眉弄眼一个字都没写出来

房产要闻

海棠湾!一所重量级国际学校真的来了!

晚餐不吃or吃七分饱,哪种更减肥?

数码要闻

AMD 发布 ROCm 6.1.3,支持 RX 7900 GRE 显卡及 TensorFlow

军事要闻

以军发言人公开表示"哈马斯无法被消灭" 以政府反驳

无障碍浏览 进入关怀版