国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

專為技術寫作人員提供的七條 Git 技巧

開發
本文重點介紹在開始使用 Git 和為 Foreman 文檔做貢獻時經常遇到的挑戰。適用于中級 Git 用戶。

作為 ATIX 的技術作家,我的任務包括為 Foreman 創建和維護存放在 github.com/theforeman/foreman-documentation 的文檔。Git 幫助我跟蹤內容的版本,并與開源社區進行協作。它是我存儲工作成果、共享和討論改進的重要工具。我主要使用的工具包括瀏覽器、用 OpenSSH 連接 Foreman 實例、用 Vim 編輯源文件,以及使用 Git 進行版本控制。

本文重點介紹在開始使用 Git 和為 Foreman 文檔做貢獻時經常遇到的挑戰。適用于中級 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 upstream

3、可選:確保你的本地主分支跟蹤 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_spelling

2、進行你的更改。

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_spelling

6、點擊終端中 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_spelling

7、在解釋中說明社區為什么應該接受你的更改。對于修正拼寫錯誤等簡單 PR,這并不是必需的,但對于重大更改則很重要。

我想將我的分支變基到 master

1、確保你的本地 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 選項會刪除對已不存在的分支的引用。

$ git fetch --all --prune

3、將可能的更改從 upstream/master 拉取到你的本地 master 分支。git pull 命令將跟蹤的分支上的提交復制到當前分支。這用于將你的本地 master 分支“更新”為遠程(在本例中為 GitHub)master 分支的最新狀態。

$ git pull

4、將你的分支 變基rebase 到 master。

$ git switch my_branch
$ git rebase -i master

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

1、創建一個分支來保存你的工作:

$ git switch -c my_feature

2、切換回 master 分支:

$ git switch master

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

$ git reset --soft HEAD~1

4、切換回 my_feature 分支并繼續工作:

$ git switch my_feature

我想修改我的提交消息

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

$ git commit --amend

這假設你沒有將其他文件添加到暫存區(即,沒有運行過 git add My_File,并且沒有進行提交)。

2、使用 --force 選項將你的 “更改” 推送到 GitHub,因為 Git 提交消息是你現有提交的一部分,所以你正在更改分支上的歷史記錄:

$ git push --force

我想重新整理單個分支上的多個更改

1、可選但強烈推薦:從 GitHub 獲取更改。

$ git switch master
$ git fetch
$ git pull

這確保你將其他更改按照它們被合并到 master 中的順序直接合并到你的分支中。

2、若要重新整理你的工作,請對你的分支進行變基并根據需要進行更改。對于將分支變基到 master,這意味著你需要更改你的分支上第一個提交的父提交:

$ git rebase --interactive master

使用你喜歡的編輯器打開變基交互界面,將第一個單詞 pick 替換為你要修改的提交。

  • 使用 e 來對你的提交進行實際更改。這會中斷你的變基操作!
  • 使用 f 將一個提交與其父提交合并。
  • 使用 d 完全刪除一個提交。
  • 移動行以改變你更改的順序。

成功進行變基后,你自己的提交將位于 master 上最后一個提交的頂部。

我想從其他分支復制一個提交

1、從穩定分支(例如名為 3.3 的分支)獲取提交的 ID,請使用 -n 選項限制提交數量:

$ git log -n 5 3.3

2、通過挑選提交來復制更改到你的分支。-x 選項將提交的 ID 添加到你的提交消息中。這僅建議在從穩定分支挑選提交時使用:

$ git switch My_Branch
$ git cherry-pick -x Commit_ID

更多技巧

在 ATIX,我們運行一個 GitLab 實例,用于內部共享代碼、協作以及自動化測試和構建。對于圍繞 Foreman 生態系統的開源社區,我們依賴于 GitHub。

我建議你始終將名為 origin 的遠程指向你的內部的版本控制系統。這樣做可以防止在純粹憑記憶進行 git push 時向外部服務泄露信息。

此外,我建議使用固定的命名方案來命名遠程。我總是將指向自己的 GitLab 實例的遠程命名為 origin,將指向開源項目的遠程命名為 upstream,將指向我在 Github 上的復刻的遠程命名為 github。

對于 foreman-documentation,該存儲庫具有相對較平的歷史記錄。當處理更復雜結構時,我傾向于以非常可視化的方式思考 Git 存儲庫,其中節點(提交)指向線上的節點(分支),這些分支可以交織在一起。圖形化工具如 gitk 或 Git Cola 可以幫助可視化你的 Git 歷史記錄。一旦你完全掌握了 Git 的工作原理,如果你更喜歡命令行,可以使用別名。

在進行具有大量預期合并沖突的大型變基之前,我建議創建一個“備份”分支,以便你可以快速查看差異。請注意,要永久刪除提交是相當困難的,因此在進行重大更改之前,請在本地 Git 存儲庫中進行測試。

Git 對技術文檔編寫者的幫助

Git 對技術文檔編寫者來說是一個巨大的幫助。不僅可以使用 Git 對文檔進行版本控制,還可以與他人積極地進行協作。

責任編輯:趙寧寧 來源: Linux中國
相關推薦

2009-08-03 16:22:58

C#編程技巧

2017-03-02 07:36:40

科技新聞早報

2022-11-02 10:31:01

IT創IT領導者

2018-05-23 20:56:49

開發原因原則

2014-02-19 10:44:55

BYOD建議

2013-05-28 14:18:04

2010-09-08 15:07:23

2021-10-29 05:52:01

零信任網絡安全網絡攻擊

2009-06-09 22:14:17

JavaScript準則

2023-01-20 08:56:04

CIOIT領導

2020-05-11 07:55:53

AWS系統

2022-06-15 15:30:29

Linux新用戶建議

2025-09-28 07:00:00

IT人才招聘風險IT經理

2021-08-03 14:17:47

Kubernetes容器安全

2019-07-09 13:42:12

數據備份云計算系統

2010-01-21 11:38:35

2025-04-10 08:00:00

CIO風險管理IT戰略

2025-05-28 02:00:00

CIO危機管理網絡安全

2010-09-17 14:24:10

2016-10-21 20:27:03

Linux
點贊
收藏

51CTO技術棧公眾號

在线一区二区三区四区五区| 精品一区二区三区三区| 亚洲欧美日韩精品在线| 奇米777国产一区国产二区| 欧美精品国产精品| 亚洲色图久久久| 久久超碰97人人做人人爱| 午夜精品99久久免费| 国产盗摄在线视频网站| 亚洲成人免费av| 日韩毛片在线免费看| 蜜臀av性久久久久蜜臀av麻豆| 国产精品九九久久久久久久| 欧美美女福利视频| 亚洲国产精品影院| 色七七在线观看| 久久综合网色—综合色88| 伊人色综合久久天天五月婷| 亚洲一级黄色| 国产精品视频免费一区| 亚洲bt欧美bt精品777| 久久偷看各类女兵18女厕嘘嘘| 影音成人av| 亚洲美女又黄又爽在线观看| 国产污视频在线播放| 制服丝袜av成人在线看| 欧美视频综合| 91精品国产综合久久久久久久久久 | 日韩毛片精品高清免费| 拍拍拍999自拍偷| 久久综合丝袜日本网| 日韩精品在线视频免费观看| 国产福利精品导航| 国产区一区二区| 精品福利av| 93久久精品日日躁夜夜躁欧美| 国产精品日韩欧美大师| 国产精品xxx在线观看| 欧美大奶子在线| 日韩毛片免费观看| 亚洲美女精品久久| 78精品国产综合久久香蕉| 亚洲欧洲在线播放| 国产成人精品一区二三区在线观看| 亚洲激情视频在线| 女人让男人操自己视频在线观看| 黑人与娇小精品av专区| 一起操在线观看| 日韩欧美精品中文字幕| 国产女人在线观看| 91精品蜜臀在线一区尤物| 91精选在线| 日韩电影大全免费观看2023年上 | 国产精品黄色av| av亚洲在线观看| 国产精品欧美激情在线播放| 国产一区2区| 国产精品一区久久| 久久精品影视| 精品视频在线观看| 日本aⅴ精品一区二区三区| 相泽南亚洲一区二区在线播放| 美国毛片一区二区三区| 男人天堂网站在线| 国产视频在线观看一区二区三区| 四虎最新地址发布| 欧美性极品xxxx娇小| av色综合久久天堂av色综合在| 日韩精品亚洲精品| 草莓视频一区二区三区| 成人一区二区电影| 免费在线观看成人| 无码人妻少妇伦在线电影| 日本一区二区三区四区在线视频 | 香蕉成人啪国产精品视频综合网| 国产精品久久久久一区二区国产 | 亚洲精品乱码| 手机看片福利永久国产日韩| 国产精品一区二区久激情瑜伽| 91成人在线观看喷潮教学| 久久精品视频免费观看| 原千岁中文字幕| 91精品啪在线观看国产60岁| 另类一区二区| 国产在线观看不卡| 蜜臀av性久久久久蜜臀av麻豆| www.日本三级| 亚洲国产日韩综合久久精品| 成人影欧美片| 欧美成人剧情片在线观看| 91精品国产成人观看| 黄色影视在线观看| 亚洲精品日日夜夜| 鲁鲁在线中文| 国产精品福利无圣光在线一区| 青青草视频一区| 国产黄色影视| 亚洲国产欧美在线成人app | 宅男在线精品国产免费观看| 国产免费观看久久| 精品自拍一区| 欧美成人激情视频免费观看| 午夜日韩在线| 日本三区在线观看| 欧美亚洲国产一区二区三区va| 筱崎爱全乳无删减在线观看| 日本sm极度另类视频| 精品无码三级在线观看视频| 美女的诞生在线观看高清免费完整版中文| 91精品在线观看入口| 国产精品网在线观看| 快播亚洲色图| 亚洲影视在线观看| 四虎视频在线精品免费网址| 国产一级二级三级精品| 国产精品毛片a∨一区二区三区| 欧美日韩在线一二三| 天天影视色香欲综合网老头| 9l视频自拍九色9l视频成人| 国产在线无码精品| 亚洲第一免费网站| 肉色丝袜一区二区| 18+视频在线观看| 欧美国产视频在线观看| 9191成人精品久久| 性伦欧美刺激片在线观看| av在线播放网站| 精品国产免费一区二区三区 | 香蕉视频在线观看网站| 国产成人精品a视频一区www| 亚洲视频一二三区| 日韩极品在线| 成人黄动漫网站| 国产精品美女主播| 亚洲国产欧美日韩另类综合| 精品99在线| 日韩av免费观影| 精品久久久久久乱码天堂| 欧美在线一二三四区| 99精品国产福利在线观看免费 | 亚洲高清精品中出| 亚洲精品乱码久久久久久金桔影视| 日韩精品高清不卡| 久草免费在线视频| 国产a级黄色大片| 国产亚洲欧美日韩一区二区| 不卡一区二区三区四区| 中文成人激情娱乐网| 免费一级电影| 欧美成人欧美edvon| 日本不卡视频在线| 蜜桃视频成人m3u8| 91香蕉视频污版| 国产精品av电影| 一本大道久久a久久精品综合| 欧美日韩国产成人精品| 免费观看在线黄色网| 亚洲国产精品日韩| 日韩在线激情视频| 久久久久久久综合狠狠综合| 国产一区二区三区探花| 粉嫩av一区| 中文字幕人成一区| 欧美黄网免费在线观看| 亚洲午夜久久久久久久久电影院| 欧美一区国产在线| av电影院在线看| 成人中文字幕在线播放| 日本亚洲欧洲色α| 欧美日韩国产免费| 99在线精品一区二区三区| 女厕嘘嘘一区二区在线播放| av免费在线一区二区三区| 中文字幕中文字幕在线中一区高清 | 国产午夜福利视频在线观看| 日韩美女视频中文字幕| 欧美精品一级二级| 久久日韩精品一区二区五区| 三区四区不卡| 日本美女一区| 在线国产福利网站| 女女百合国产免费网站| 国产97在线视频| 亚洲精品一区二区三区99| 欧美—级在线免费片| 欧美黄在线观看| 亚洲欧洲专区| 最新av网站在线观看| 国产91在线视频观看| 国产精品三区www17con| 久久亚洲春色中文字幕| 91久久香蕉国产日韩欧美9色| 国产乱一区二区| 精品久久成人| 日韩成人av电影| 中文字幕在线二区| 又粗又黑又大的吊av| 精品日本一区二区| 国产v综合ⅴ日韩v欧美大片| 日韩电影在线观看中文字幕 |