{"id":68807,"date":"2022-11-21T09:00:35","date_gmt":"2022-11-21T09:00:35","guid":{"rendered":"https:\/\/www.cryptocabaret.com\/?p=68807"},"modified":"2022-11-21T09:00:35","modified_gmt":"2022-11-21T09:00:35","slug":"7-git-tips-for-technical-writers","status":"publish","type":"post","link":"https:\/\/www.cryptocabaret.com\/?p=68807","title":{"rendered":"7 Git tips for technical writers"},"content":{"rendered":"<p><span class=\"field field--name-title field--type-string field--label-hidden\">7 Git tips for technical writers<\/span><br \/>\n<span class=\"field field--name-uid field--type-entity-reference field--label-hidden\"><a title=\"View user profile.\" href=\"https:\/\/opensource.com\/users\/kolb\" class=\"username\">Maximilian Kolb<\/a><\/span><br \/>\n<span class=\"field field--name-created field--type-created field--label-hidden\">Mon, 11\/21\/2022 &#8211; 03:00<\/span><\/p>\n<div class=\"clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item\">\n<p>As a technical writer working for <a href=\"https:\/\/atix.de\/en\/\">ATIX<\/a>, my tasks include creating and maintaining documentation for <a href=\"https:\/\/opensource.com\/article\/17\/8\/system-management-foreman\" target=\"_blank\" rel=\"noopener\">Foreman<\/a> at <a href=\"https:\/\/github.com\/theforeman\/foreman-documentation\">github.com\/theforeman\/foreman-documentation<\/a>. Git helps me track versions of content, and to collaborate with the open source community. It&#8217;s an integral part of storing the results of my work, sharing it, and discussing improvements. My main tools include my browser, OpenSSH to connect to Foreman instances, <a href=\"https:\/\/opensource.com\/resources\/what-vim\">Vim<\/a> to edit source files, and Git to version content.<\/p>\n<p>This article focuses on recurring challenges when taking the first steps with Git and contributing to Foreman documentation. This is meant for intermediate Git users.<\/p>\n<h2>Prerequisites<\/h2>\n<ul>\n<li>\n<p>You have installed and configured Git on your system. You must at least set your user name and email address.<\/p>\n<\/li>\n<li>\n<p>You have an account on <a href=\"https:\/\/github.com\/\">github.com<\/a>. GitHub isn&#8217;t an open source project itself, but it&#8217;s the site where many open source Git repositories are stored (including Foreman&#8217;s documentation.)<\/p>\n<\/li>\n<li>\n<p>You have forked the <a href=\"https:\/\/github.com\/theforeman\/foreman-documentation\">foreman-documentation<\/a> repository into your own account or organization (for example, <em>github.com\/My_Name\/foreman-documentation<\/em>. For more information, see <a href=\"https:\/\/opensource.com\/article\/18\/1\/step-step-guide-git\">A step-by-step guide to Git<\/a> by Kedar Vijay Kulkarni.<\/p>\n<\/li>\n<li>\n<p>You have added your SSH public key to GitHub. This is necessary to push your changes to GitHub. For more information, see <a href=\"https:\/\/opensource.com\/life\/15\/11\/short-introduction-github\">A short introduction to GitHub<\/a> by Nicole C. Baratta.<\/p>\n<\/li>\n<\/ul>\n<h2>Contributing to Foreman documentation<\/h2>\n<p>Foreman is an open source project and thrives on community contributions. The project welcomes everyone and there are only a few requirements to make meaningful contributions. Requirements and conventions are documented in the <a href=\"https:\/\/github.com\/theforeman\/foreman-documentation\/blob\/master\/guides\/README.md#contribution-guidelines\">README.md<\/a> and <a href=\"https:\/\/github.com\/theforeman\/foreman-documentation\/blob\/master\/CONTRIBUTING.md#contributing-to-foreman-documentation\">CONTRIBUTING.md<\/a> files.<\/p>\n<p>Here are some of the most frequent tasks when working on Foreman documentation.<\/p>\n<h2>I want to start working on Foreman documentation<\/h2>\n<ol class=\"arabic\">\n<li>\n<p>Clone the repository from github.com:<\/p>\n<pre class=\"highlight\">\n<div class=\"geshifilter\"><div class=\"bash geshifilter-bash\">$ <span class=\"kw2\">git clone<\/span> <span class=\"kw2\">git<\/span><span class=\"sy0\">@<\/span>github.com:theforeman<span class=\"sy0\">\/<\/span>foreman-documentation.git<br>\n$ <span class=\"kw3\">cd<\/span> foreman-documentation<span class=\"sy0\">\/<\/span><\/div><\/div><\/pre>\n<\/li>\n<li>\n<p>Rename the remote:<\/p>\n<pre class=\"highlight\">\n<span class=\"geshifilter\"><code class=\"bash geshifilter-bash\"><span class=\"co4\">$ <\/span><span class=\"kw2\">git remote<\/span> rename origin upstream<\/code><\/span><\/pre>\n<\/li>\n<li>\n<p>Optional: Ensure that your local master branch is tracking the master branch from the <strong>foreman-documentation<\/strong> repository from the <strong>theforeman<\/strong> organization:<\/p>\n<pre class=\"highlight\">\n<span class=\"geshifilter\"><code class=\"bash geshifilter-bash\"><span class=\"co4\">$ <\/span><span class=\"kw2\">git status<\/span><\/code><\/span><\/pre>\n<p>This automatically starts you on the latest commit of the default branch, which in this case is <strong>master<\/strong>.<\/p>\n<\/li>\n<li>\n<p>If you do not have a fork of the repository in your own account or organization already, create one.<\/p>\n<p>Go to <a href=\"https:\/\/github.com\/theforeman\/foreman-documentation\">github.com\/theforeman\/foreman-documentation<\/a> and click <strong>Fork<\/strong>.<\/p>\n<\/li>\n<li>\n<p>Add your fork to your repository.<\/p>\n<pre class=\"highlight\">\n<span class=\"geshifilter\"><code class=\"bash geshifilter-bash\"><span class=\"co4\">$ <\/span><span class=\"kw2\">git remote<\/span> add github <span class=\"kw2\">git<\/span><span class=\"sy0\">@<\/span>github.com:My_Name<span class=\"sy0\">\/<\/span>foreman-documentation.git<\/code><\/span><\/pre>\n<p>Your local repository now has two remotes: <code>upstream<\/code> and <code>github<\/code>.<\/p>\n<\/li>\n<\/ol>\n<h2>I want to extend the Foreman documentation<\/h2>\n<p>For simple changes such as fixing a spelling mistake, you can create a pull request (PR) directly.<\/p>\n<ol class=\"arabic\">\n<li>\n<p>Create a branch named, for example, <code>fix_spelling<\/code>. The <code>git switch<\/code> command changes the currently checked out branch, and <code>-c<\/code> creates the branch:<\/p>\n<pre class=\"highlight\">\n<span class=\"geshifilter\"><code class=\"bash geshifilter-bash\"><span class=\"co4\">$ <\/span><span class=\"kw2\">git<\/span> switch <span class=\"re5\">-c<\/span> fix_spelling<\/code><\/span><\/pre>\n<\/li>\n<li>\n<p>Make your change.<\/p>\n<\/li>\n<li>\n<p>Add your change and commit:<\/p>\n<pre class=\"highlight\">\n<div class=\"geshifilter\"><div class=\"bash geshifilter-bash\">$ <span class=\"kw2\">git add<\/span> guides<span class=\"sy0\">\/<\/span>common<span class=\"sy0\">\/<\/span>modules<span class=\"sy0\">\/<\/span>abc.adoc<br>\n$ <span class=\"kw2\">git commit<\/span> <span class=\"re5\">-m<\/span> <span class=\"st0\">\"Fix spelling of existing\"<\/span><\/div><\/div><\/pre>\n<p>I cannot emphasise the importance of good Git commit messages enough. A commit message tells the project maintainers what you have done, and because it&#8217;s preserved along with the rest of the codebase, it serves as a historical footnote when someone&#8217;s looking back through code to determine what&#8217;s happened over its lifespan.<\/p>\n<\/li>\n<li>\n<p>Optional but recommended: View and verify the diff to the default branch. The default branch for <strong>foreman-documentation<\/strong> is called <code>master<\/code>, but other projects may name theirs differently (for example, <code>main<\/code>, <code>dev<\/code>, or <code>devel<\/code>.)<\/p>\n<pre class=\"highlight\">\n<span class=\"geshifilter\"><code class=\"bash geshifilter-bash\"><span class=\"co4\">$ <\/span><span class=\"kw2\">git diff<\/span> master<\/code><\/span><\/pre>\n<\/li>\n<li>\n<p>Push your branch to Github. This publishes your change to your copy of the codebase.<\/p>\n<pre class=\"highlight\">\n<span class=\"geshifilter\"><code class=\"bash geshifilter-bash\"><span class=\"co4\">$ <\/span><span class=\"kw2\">git push<\/span> <span class=\"re5\">--set-upstream<\/span> github fix_spelling<\/code><\/span><\/pre>\n<\/li>\n<li>\n<p>Click on the link provided by Git in your terminal to create a pull request (PR).<\/p>\n<pre class=\"highlight\">\n<div class=\"geshifilter\"><div class=\"bash geshifilter-bash\">remote: Create a pull request <span class=\"kw1\">for<\/span> <span class=\"st_h\">'fix_spelling'<\/span> on Github by visiting:<br>\nremote: \u00a0 \u00a0 \u00a0https:<span class=\"sy0\">\/\/<\/span>github.com<span class=\"sy0\">\/<\/span>_My_User_Account_<span class=\"sy0\">\/<\/span>foreman-documentation<span class=\"sy0\">\/<\/span>pull<span class=\"sy0\">\/<\/span>new<span class=\"sy0\">\/<\/span>fix_spelling<\/div><\/div><\/pre>\n<\/li>\n<li>\n<p>Add an explanation on <em>why<\/em> the community should accept your change. This isn&#8217;t necessary for a trivial PR, such as fixing a spelling mistake, but for major changes it&#8217;s important.<\/p>\n<\/li>\n<\/ol>\n<div class=\"embedded-resource-list callout-float-right\">\n<div class=\"field field--name-title field--type-string field--label-hidden field__item\">More on Git<\/div>\n<div class=\"field field--name-links field--type-link field--label-hidden field__items\">\n<div class=\"field__item\"><a href=\"https:\/\/opensource.com\/resources\/what-is-git?intcmp=7013a000002CxqLAAS\">What is Git?<\/a><\/div>\n<div class=\"field__item\"><a href=\"https:\/\/opensource.com\/downloads\/cheat-sheet-git?intcmp=7013a000002CxqLAAS\">Git cheat sheet<\/a><\/div>\n<div class=\"field__item\"><a href=\"https:\/\/opensource.com\/downloads\/cheat-sheet-markdown?intcmp=7013a000002CxqLAAS\">Markdown cheat sheet<\/a><\/div>\n<div class=\"field__item\"><a href=\"https:\/\/opensource.com\/tags\/git?intcmp=7013a000002CxqLAAS\">New Git articles<\/a><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<h2>I want to rebase my branch to master.<\/h2>\n<ol class=\"arabic\">\n<li>\n<p>Ensure your local master branch tracks the master branch from <a href=\"https:\/\/github.com\/theforeman\/foreman-documentation\">github.com\/theforeman\/foreman-documentation<\/a>, not <strong>foreman-documentation<\/strong> in your own namespace:<\/p>\n<pre class=\"highlight\">\n<span class=\"geshifilter\"><code class=\"bash geshifilter-bash\"><span class=\"co4\">$ <\/span><span class=\"kw2\">git<\/span> switch master<\/code><\/span><\/pre>\n<p>This should read <code>Your branch is up to date with 'upstream\/master'<\/code>, with <code>upstream<\/code> being the name of your remote repository pointing to <code>github.com\/theforeman\/foreman-documentation<\/code>. You can review your remotes by running <code>git remote -v<\/code>.<\/p>\n<\/li>\n<li>\n<p>Fetch possible changes from your remote. The <code>git fetch<\/code> command downloads the tracked branch from your remote, and the <code>--all<\/code> option updates all branches simultaneously. This is necessary when working with additional branches. The <code>--prune<\/code> option removes references to branches that no longer exist.<\/p>\n<pre class=\"highlight\">\n<span class=\"geshifilter\"><code class=\"bash geshifilter-bash\"><span class=\"co4\">$ <\/span><span class=\"kw2\">git fetch<\/span> <span class=\"re5\">--all<\/span> <span class=\"re5\">--prune<\/span><\/code><\/span><\/pre>\n<\/li>\n<li>\n<p>Pull possible changes from <code>upstream\/master<\/code> into your local <code>master<\/code> branch. The <code>git pull<\/code> command copies commits from the branch you&#8217;re tracking into your current branch. This is used to &#8220;update&#8221; your local <code>master<\/code> branch to the latest state of the <code>master<\/code> branch in your remote (Github, in this case.)<\/p>\n<pre class=\"highlight\">\n<span class=\"geshifilter\"><code class=\"bash geshifilter-bash\"><span class=\"co4\">$ <\/span><span class=\"kw2\">git pull<\/span><\/code><\/span><\/pre>\n<\/li>\n<li>\n<p>Rebase your branch to &#8220;master&#8221;.<\/p>\n<pre class=\"highlight\">\n<div class=\"geshifilter\"><div class=\"bash geshifilter-bash\">$ <span class=\"kw2\">git<\/span> switch my_branch<br>\n$ <span class=\"kw2\">git rebase<\/span> <span class=\"re5\">-i<\/span> master<\/div><\/div><\/pre>\n<\/li>\n<\/ol>\n<h2>I have accidentally committed to master<\/h2>\n<ol class=\"arabic\">\n<li>\n<p>Create a branch to save your work:<\/p>\n<pre class=\"highlight\">\n<span class=\"geshifilter\"><code class=\"bash geshifilter-bash\"><span class=\"co4\">$ <\/span><span class=\"kw2\">git<\/span> switch <span class=\"re5\">-c<\/span> my_feature<\/code><\/span><\/pre>\n<\/li>\n<li>\n<p>Switch back to the <code>master<\/code> branch:<\/p>\n<pre class=\"highlight\">\n<span class=\"geshifilter\"><code class=\"bash geshifilter-bash\"><span class=\"co4\">$ <\/span><span class=\"kw2\">git<\/span> switch master<\/code><\/span><\/pre>\n<\/li>\n<li>\n<p>Drop the last commit on <code>master<\/code>:<\/p>\n<pre class=\"highlight\">\n<span class=\"geshifilter\"><code class=\"bash geshifilter-bash\"><span class=\"co4\">$ <\/span><span class=\"kw2\">git reset<\/span> <span class=\"re5\">--soft<\/span> HEAD~<span class=\"nu0\">1<\/span><\/code><\/span><\/pre>\n<\/li>\n<li>\n<p>Switch back to <code>my_feature<\/code> branch and continue working:<\/p>\n<pre class=\"highlight\">\n<span class=\"geshifilter\"><code class=\"bash geshifilter-bash\"><span class=\"co4\">$ <\/span><span class=\"kw2\">git<\/span> switch my_feature<\/code><\/span><\/pre>\n<\/li>\n<\/ol>\n<h2>I want to reword my commit message<\/h2>\n<ol class=\"arabic\">\n<li>\n<p>If you only have one commit on your branch, use <code>git amend<\/code> to change your last commit:<\/p>\n<pre class=\"highlight\">\n<span class=\"geshifilter\"><code class=\"bash geshifilter-bash\"><span class=\"co4\">$ <\/span><span class=\"kw2\">git commit<\/span> <span class=\"re5\">--amend<\/span><\/code><\/span><\/pre>\n<p>This assumes that you don&#8217;t have any other files added to your staging area (that is, you did not run <code>git add My_File<\/code> without also committing it.)<\/p>\n<\/li>\n<li>\n<p>Push your &#8220;change&#8221; to Github, using the <code>--force<\/code> option because the Git commit message is part of your existing commit, so you&#8217;re changing the history on your branch.<\/p>\n<pre class=\"highlight\">\n<span class=\"geshifilter\"><code class=\"bash geshifilter-bash\"><span class=\"co4\">$ <\/span><span class=\"kw2\">git push<\/span> <span class=\"re5\">--force<\/span><\/code><\/span><\/pre>\n<\/li>\n<\/ol>\n<h2>I want to restructure multiple changes on a single branch<\/h2>\n<ol class=\"arabic\">\n<li>\n<p>Optional but strongly recommended: Fetch changes from Github.<\/p>\n<pre class=\"highlight\">\n<div class=\"geshifilter\"><div class=\"bash geshifilter-bash\">$ <span class=\"kw2\">git<\/span> switch master<br>\n$ <span class=\"kw2\">git fetch<\/span><br>\n$ <span class=\"kw2\">git pull<\/span><\/div><\/div><\/pre>\n<p>This ensures that you directly incorporate any other changes into your branch in the order they&#8217;ve been merged to <code>master<\/code>.<\/p>\n<\/li>\n<li>\n<p>To restructure your work, rebase your branch and make changes as necessary. Rebasing to <code>master<\/code> means changing the parent commit of your first commit on your branch:<\/p>\n<pre class=\"highlight\">\n<span class=\"geshifilter\"><code class=\"bash geshifilter-bash\"><span class=\"co4\">$ <\/span><span class=\"kw2\">git rebase<\/span> <span class=\"re5\">--interactive<\/span> master<\/code><\/span><\/pre>\n<p>Replace the first word <code>pick<\/code> to modify the commit.<\/p>\n<ul>\n<li>\n<p>Use <strong>e<\/strong> to make actual changes to your commit. This interrupts your rebase!<\/p>\n<\/li>\n<li>\n<p>Use <strong>f<\/strong> to combine a commit with its parent.<\/p>\n<\/li>\n<li>\n<p>Use <strong>d<\/strong> to completely remove the commit from your branch.<\/p>\n<\/li>\n<li>\n<p>Move the lines to change the order of your changes.<\/p>\n<p>After successfully rebasing, your own commits are on top of the last commit from <code>master<\/code>.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2>I want to copy a commit from another branch<\/h2>\n<ol class=\"arabic\">\n<li>\n<p>Get the commit ID from a stable branch (for example, a branch named <code>3.3<\/code>), using the <code>-n<\/code> option to limit the number of commits.<\/p>\n<pre class=\"highlight\">\n<span class=\"geshifilter\"><code class=\"bash geshifilter-bash\"><span class=\"co4\">$ <\/span><span class=\"kw2\">git log<\/span> <span class=\"re5\">-n<\/span> <span class=\"nu0\">5<\/span> <span class=\"nu0\">3.3<\/span><\/code><\/span><\/pre>\n<\/li>\n<li>\n<p>Replicate changes by cherry-picking commits to your branch. The <code>-x<\/code> option adds the commit ID to your commit message. This is only recommended when cherry-picking commits from a stable branch.<\/p>\n<pre class=\"highlight\">\n<div class=\"geshifilter\"><div class=\"bash geshifilter-bash\">$ <span class=\"kw2\">git<\/span> switch My_Branch<br>\n$ <span class=\"kw2\">git cherry-pick<\/span> <span class=\"re5\">-x<\/span> Commit_ID<\/div><\/div><\/pre>\n<\/li>\n<\/ol>\n<h2>More tips<\/h2>\n<p>At ATIX, we run a <a href=\"https:\/\/about.gitlab.com\/\">GitLab<\/a> instance to share code, collaborate, and automate tests and builds internally. With the open source community surrounding the Foreman ecosystem, we rely on Github.<\/p>\n<p>I recommend that you always point the remote named <code>origin<\/code> in any Git repository to your <em>internal<\/em> version control system. This prevents leaking information to external services when doing a <code>git push<\/code> based on pure muscle memory.<\/p>\n<p>Additionally, I recommend using a fixed naming scheme for remotes. I always name the remote pointing to my own GitLab instance <code>origin<\/code>, the open source project <code>upstream<\/code>, and my fork on Github <code>github<\/code>.<\/p>\n<p>For <code>foreman-documentation<\/code>, the repository has a relatively flat history. When working with a more complex structure, I tend to think of Git repositories in a very visual way with nodes (commits) pointing to nodes on lines (branches) that potentially intertwine. Graphical tools such as <code>gitk<\/code> or <a href=\"https:\/\/opensource.com\/article\/20\/3\/git-cola\">Git Cola<\/a> can help visualize your Git history. Once you have fully grasped how Git works, you can move on to aliases, if you prefer the command line.<\/p>\n<p>Before a big rebase with a lot of expected merge conflicts, I recommend creating a &#8220;backup&#8221; branch that you can quickly view diffs against. Note that it&#8217;s pretty hard to irreversibly delete commits, so play around in your local Git repository before making big changes.<\/p>\n<h2>Git for tech writers<\/h2>\n<p>Git is a tremendous help for technical writers. Not only can you use Git to version your own content, but you can actively collaborate with others.<\/p>\n<\/div>\n<div class=\"clearfix text-formatted field field--name-field-article-subhead field--type-text-long field--label-hidden field__item\">\n<p>Follow along with this demo of how I use Git to write documentation for Foreman.<\/p>\n<\/div>\n<div class=\"field field--name-field-lead-image field--type-entity-reference field--label-hidden field__item\">\n<article class=\"media media--type-image media--view-mode-caption\">\n<div class=\"field field--name-field-media-image field--type-image field--label-hidden field__item\">  <img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/11\/coffee_tea_laptop_computer_work_desk.png\" width=\"520\" height=\"292\" alt=\"Person drinking a hat drink at the computer\" title=\"Person drinking a hat drink at the computer\"><\/div>\n<div class=\"field field--name-field-caption field--type-text-long field--label-hidden caption field__item\"><span class=\"caption__byline\">Image by: <\/span><\/p>\n<p><a href=\"https:\/\/unsplash.com\/@jonasleupe?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\" target=\"_blank\" rel=\"ugc noopener\">Jonas Leupe<\/a>\u00a0on\u00a0<a href=\"https:\/\/unsplash.com\/s\/photos\/tea-cup-computer?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\" target=\"_blank\" rel=\"ugc noopener\">Unsplash<\/a><\/p>\n<\/div>\n<\/article>\n<\/div>\n<div class=\"field field--name-field-tags field--type-entity-reference field--label-hidden field__items\">\n<div class=\"field__item\"><a href=\"https:\/\/opensource.com\/tags\/git\" hreflang=\"en\">Git<\/a><\/div>\n<div class=\"field__item\"><a href=\"https:\/\/opensource.com\/tags\/documentation\" hreflang=\"en\">Documentation<\/a><\/div>\n<\/p><\/div>\n<div class=\"field field--name-field-listicle-title field--type-string field--label-hidden field__item\">What to read next<\/div>\n<div class=\"field field--name-field-listicles field--type-entity-reference field--label-hidden field__items\">\n<div class=\"field__item\"><a href=\"https:\/\/opensource.com\/article\/19\/4\/write-git\" hreflang=\"und\">How writers can get work done better with Git<\/a><\/div>\n<\/p><\/div>\n<div class=\"field field--name-field-default-license field--type-list-string field--label-hidden field__item\"><a rel=\"license\" href=\"http:\/\/creativecommons.org\/licenses\/by-sa\/4.0\/\"><br \/>\n        <img decoding=\"async\" alt=\"Creative Commons License\" src=\"https:\/\/www.cryptocabaret.com\/wp-content\/uploads\/2022\/11\/cc-by-sa--30.png\" title=\"This work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.\"><\/a>This work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.<\/div>\n<section class=\"field field--name-field-comments field--type-comment field--label-hidden comment-wrapper\">\n<div class=\"comments__count\">\n<div class=\"login\"><a href=\"https:\/\/opensource.com\/user\/register?absolute=1\">Register<\/a> or <a href=\"https:\/\/opensource.com\/user\/login?destination=\/feed&amp;absolute=1\">Login<\/a> to post a comment.<\/div>\n<\/p><\/div>\n<\/section>\n<p class=\"wpematico_credit\"><small>Powered by <a href=\"http:\/\/www.wpematico.com\" target=\"_blank\" rel=\"noopener\">WPeMatico<\/a><\/small><\/p>\n","protected":false},"excerpt":{"rendered":"<p>7 Git tips for technical writers Maximilian Kolb Mon, 11\/21\/2022 &#8211; 03:00 As a technical writer working for ATIX, my tasks include creating and maintaining documentation for Foreman at github.com\/theforeman\/foreman-documentation. Git helps me track versions of content, and to collaborate with the open source community. It&#8217;s an integral part of storing the results of my [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":68808,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[307],"tags":[],"class_list":["post-68807","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-open-source"],"_links":{"self":[{"href":"https:\/\/www.cryptocabaret.com\/index.php?rest_route=\/wp\/v2\/posts\/68807","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cryptocabaret.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cryptocabaret.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cryptocabaret.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cryptocabaret.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=68807"}],"version-history":[{"count":0,"href":"https:\/\/www.cryptocabaret.com\/index.php?rest_route=\/wp\/v2\/posts\/68807\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cryptocabaret.com\/index.php?rest_route=\/wp\/v2\/media\/68808"}],"wp:attachment":[{"href":"https:\/\/www.cryptocabaret.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=68807"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cryptocabaret.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=68807"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cryptocabaret.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=68807"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}