<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://agora.nasqueron.org/index.php?action=history&amp;feed=atom&amp;title=User%3ADereckson%2FDevserver%2FGit</id>
	<title>User:Dereckson/Devserver/Git - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://agora.nasqueron.org/index.php?action=history&amp;feed=atom&amp;title=User%3ADereckson%2FDevserver%2FGit"/>
	<link rel="alternate" type="text/html" href="https://agora.nasqueron.org/index.php?title=User:Dereckson/Devserver/Git&amp;action=history"/>
	<updated>2026-08-23T13:54:36Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0-alpha</generator>
	<entry>
		<id>https://agora.nasqueron.org/index.php?title=User:Dereckson/Devserver/Git&amp;diff=2574&amp;oldid=prev</id>
		<title>Dereckson: Documentation by GPT-5.6-Sol for git bye / newbug and the new receive / resend / land new version</title>
		<link rel="alternate" type="text/html" href="https://agora.nasqueron.org/index.php?title=User:Dereckson/Devserver/Git&amp;diff=2574&amp;oldid=prev"/>
		<updated>2026-08-23T04:29:07Z</updated>

		<summary type="html">&lt;p&gt;Documentation by GPT-5.6-Sol for git bye / newbug and the new receive / resend / land new version&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Introduction ==&lt;br /&gt;
A small set of custom Git commands for working with short-lived feature branches is added to $HOME/bin.&lt;br /&gt;
&lt;br /&gt;
The commands implement a change-centric workflow inspired by Phabricator&amp;#039;s &amp;lt;code&amp;gt;arc land&amp;lt;/code&amp;gt; model and Gerrit:&lt;br /&gt;
&lt;br /&gt;
* the default branch is the canonical project history;&lt;br /&gt;
* one feature branch represents one logical change;&lt;br /&gt;
* the feature commit may be amended while the change is under development;&lt;br /&gt;
* feature branches may be published to a remote for review, testing or deployment;&lt;br /&gt;
* once accepted, the change is landed on the default branch;&lt;br /&gt;
* feature branches are disposable and are removed after landing.&lt;br /&gt;
&lt;br /&gt;
The normal lifecycle is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
newbug → edit/commit → resend ↔ receive → land&lt;br /&gt;
                                     ↘&lt;br /&gt;
                                      bye&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;land&amp;lt;/code&amp;gt; is used when landing the change locally.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bye&amp;lt;/code&amp;gt; is used when the change has already been merged elsewhere, for example through a forge or code-review interface.&lt;br /&gt;
&lt;br /&gt;
== Command reference ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command&lt;br /&gt;
! Purpose&lt;br /&gt;
! Typical use&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git get-default-branch&amp;lt;/code&amp;gt;&lt;br /&gt;
| Determine the repository&amp;#039;s integration branch&lt;br /&gt;
| Used directly and by the other workflow commands&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git newbug BRANCH&amp;lt;/code&amp;gt;&lt;br /&gt;
| Start a new change from an updated default branch&lt;br /&gt;
| Beginning a task&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git resend&amp;lt;/code&amp;gt;&lt;br /&gt;
| Amend and republish the current feature commit&lt;br /&gt;
| Send a new revision for testing or review&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git receive&amp;lt;/code&amp;gt;&lt;br /&gt;
| Replace the local feature checkout with its published version&lt;br /&gt;
| Development or deployment machine&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git land&amp;lt;/code&amp;gt;&lt;br /&gt;
| Integrate the feature commit and clean up the branch&lt;br /&gt;
| Completing a locally landed change&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git bye&amp;lt;/code&amp;gt;&lt;br /&gt;
| Return to the default branch and remove the feature branch&lt;br /&gt;
| Change already merged elsewhere&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git delete-remote-branch&amp;lt;/code&amp;gt;&lt;br /&gt;
| Delete a branch from a remote repository&lt;br /&gt;
| Explicit remote branch cleanup&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Philosophy ==&lt;br /&gt;
&lt;br /&gt;
These commands deliberately use Git as a change-oriented version-control system.&lt;br /&gt;
&lt;br /&gt;
The permanent artifact is the clean history of accepted changes on the default branch.&lt;br /&gt;
&lt;br /&gt;
A feature branch is temporary infrastructure around one of those changes. While the change is being prepared, its commit can be amended and republished as many times as necessary.&lt;br /&gt;
&lt;br /&gt;
Consequently:&lt;br /&gt;
&lt;br /&gt;
* rewriting a private feature branch is normal;&lt;br /&gt;
* rewriting the default branch is not;&lt;br /&gt;
* feature branches are short-lived;&lt;br /&gt;
* intermediate correction commits do not need to survive forever;&lt;br /&gt;
* landing turns the final version of the change into permanent project history;&lt;br /&gt;
* local and remote feature branches can then be discarded.&lt;br /&gt;
&lt;br /&gt;
This is closer to the change model used by Phabricator or Gerrit than to workflows where the complete development history of every feature branch is retained after merging.&lt;br /&gt;
&lt;br /&gt;
== Git subcommands ==&lt;br /&gt;
&lt;br /&gt;
The commands are installed as executables named &amp;lt;code&amp;gt;git-NAME&amp;lt;/code&amp;gt; in the user&amp;#039;s &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Git automatically exposes such executables as subcommands.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ git get-default-branch&lt;br /&gt;
main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
invokes the &amp;lt;code&amp;gt;git-get-default-branch&amp;lt;/code&amp;gt; executable.&lt;br /&gt;
&lt;br /&gt;
== Typical workflow ==&lt;br /&gt;
&lt;br /&gt;
=== Start a change ===&lt;br /&gt;
&lt;br /&gt;
Start from the repository&amp;#039;s default branch and create a new feature branch:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ git newbug fix-vault-policy&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git newbug&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
# determines the repository&amp;#039;s default branch;&lt;br /&gt;
# switches to it;&lt;br /&gt;
# updates it from the remote repository;&lt;br /&gt;
# creates the requested feature branch.&lt;br /&gt;
&lt;br /&gt;
The resulting history is conceptually:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
A---B---C  main&lt;br /&gt;
         \&lt;br /&gt;
          D  fix-vault-policy&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The feature branch is intended to contain one logical change.&lt;br /&gt;
&lt;br /&gt;
After editing files, create the initial commit normally:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ git add -p&lt;br /&gt;
$ git commit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ git commit -m &amp;quot;vault: restrict access to production secrets&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Amend and republish a change ===&lt;br /&gt;
&lt;br /&gt;
During development, the commit may be updated instead of accumulating fixup commits.&lt;br /&gt;
&lt;br /&gt;
Use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ git resend&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command interactively stages changes with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
git add -p&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and amends the current commit while retaining its commit message.&lt;br /&gt;
&lt;br /&gt;
The updated feature branch is then published.&lt;br /&gt;
&lt;br /&gt;
If a remote named &amp;lt;code&amp;gt;datacube&amp;lt;/code&amp;gt; exists, it is preferred:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
workstation&lt;br /&gt;
    |&lt;br /&gt;
    | git resend&lt;br /&gt;
    v&lt;br /&gt;
datacube/fix-vault-policy&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, the branch is pushed to &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Because amending a commit changes its object ID, publishing a new revision requires replacing the previously published feature-branch commit.&lt;br /&gt;
&lt;br /&gt;
This rewriting is expected for short-lived feature branches. It must not be used to rewrite shared permanent branches such as &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== DevCentral repositories ====&lt;br /&gt;
&lt;br /&gt;
For repositories hosted on DevCentral, &amp;lt;code&amp;gt;git resend&amp;lt;/code&amp;gt; does not automatically push to &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Use Arcanist:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ arc diff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or configure a &amp;lt;code&amp;gt;datacube&amp;lt;/code&amp;gt; remote for the workstation-to-server sharing workflow.&lt;br /&gt;
&lt;br /&gt;
=== Receive a published revision on another machine ===&lt;br /&gt;
&lt;br /&gt;
A development or deployment machine can synchronize its current feature branch with the version published from the workstation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ git receive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command fetches the remote repositories and then resets the current feature branch to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
datacube/&amp;lt;current-branch&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
when &amp;lt;code&amp;gt;datacube&amp;lt;/code&amp;gt; exists, or otherwise:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
origin/&amp;lt;current-branch&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, after publishing a Salt change from the workstation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
workstation$ git resend&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
the development server can receive and test it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
devserver$ git receive&lt;br /&gt;
devserver$ salt-call saltutil.sync_modules&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Warning:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;git receive&amp;lt;/code&amp;gt; uses &amp;lt;code&amp;gt;git reset --hard&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Tracked changes in the index and working tree which are not present in the selected remote branch are discarded.&lt;br /&gt;
&lt;br /&gt;
Untracked files are not removed.&lt;br /&gt;
&lt;br /&gt;
The command is therefore intended for feature branches on development or deployment checkouts where the remote version is authoritative.&lt;br /&gt;
&lt;br /&gt;
== Landing a change ==&lt;br /&gt;
&lt;br /&gt;
When the feature commit is ready to become part of the repository&amp;#039;s canonical history, run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ git land&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command:&lt;br /&gt;
&lt;br /&gt;
# fetches remote changes;&lt;br /&gt;
# switches to the default branch;&lt;br /&gt;
# updates the default branch;&lt;br /&gt;
# cherry-picks the feature commit;&lt;br /&gt;
# pushes the updated default branch;&lt;br /&gt;
# deletes the local feature branch;&lt;br /&gt;
# deletes the published feature branch from &amp;lt;code&amp;gt;datacube&amp;lt;/code&amp;gt;, or from &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; when no &amp;lt;code&amp;gt;datacube&amp;lt;/code&amp;gt; remote exists.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Before:&lt;br /&gt;
&lt;br /&gt;
A---B---C---E  main&lt;br /&gt;
         \&lt;br /&gt;
          D&amp;#039;  fix-vault-policy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
git land&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After:&lt;br /&gt;
&lt;br /&gt;
A---B---C---E---D&amp;#039;&amp;#039;  main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The feature branch is then removed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;D&amp;#039;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;D&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; represent the same logical change at different points of its Git history: cherry-picking creates a new commit on the default branch.&lt;br /&gt;
&lt;br /&gt;
=== One change per branch ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git land&amp;lt;/code&amp;gt; lands the commit at the tip of the current feature branch.&lt;br /&gt;
&lt;br /&gt;
The workflow therefore expects a feature branch to represent one logical commit.&lt;br /&gt;
&lt;br /&gt;
During review or testing, update that commit with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ git resend&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
rather than adding a succession of commits such as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Implement feature&lt;br /&gt;
Fix typo&lt;br /&gt;
Actually fix test&lt;br /&gt;
Address review&lt;br /&gt;
Fix lint&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those intermediate states are useful while developing the change, but do not need to become part of the permanent project history.&lt;br /&gt;
&lt;br /&gt;
== Cleaning up an externally merged branch ==&lt;br /&gt;
&lt;br /&gt;
Sometimes the change is landed by another system, for example after merging a pull request or accepting a code review.&lt;br /&gt;
&lt;br /&gt;
In that case, there is nothing left for &amp;lt;code&amp;gt;git land&amp;lt;/code&amp;gt; to integrate.&lt;br /&gt;
&lt;br /&gt;
From the feature branch, run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ git bye&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command switches back to the repository&amp;#039;s default branch, updates it when appropriate, and deletes the previous local feature branch.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ git status --short --branch&lt;br /&gt;
## fix-vault-policy&lt;br /&gt;
&lt;br /&gt;
$ git bye&lt;br /&gt;
&lt;br /&gt;
$ git status --short --branch&lt;br /&gt;
## main...origin/main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git bye&amp;lt;/code&amp;gt; force-deletes the local feature branch.&lt;br /&gt;
&lt;br /&gt;
Use it only when the change has already been integrated elsewhere or when the local branch is deliberately no longer needed.&lt;br /&gt;
&lt;br /&gt;
== Determining the default branch ==&lt;br /&gt;
&lt;br /&gt;
Use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ git get-default-branch&lt;br /&gt;
main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command determines the branch which should be treated as the repository&amp;#039;s integration branch.&lt;br /&gt;
&lt;br /&gt;
Examples include:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
main&lt;br /&gt;
master&lt;br /&gt;
production&lt;br /&gt;
dev&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Other workflow commands use this helper instead of assuming that every repository uses &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ git get-default-branch&lt;br /&gt;
production&lt;br /&gt;
&lt;br /&gt;
$ git newbug update-webserver&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will create &amp;lt;code&amp;gt;update-webserver&amp;lt;/code&amp;gt; from &amp;lt;code&amp;gt;production&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Deleting a remote branch ==&lt;br /&gt;
&lt;br /&gt;
A remote branch can be explicitly removed with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ git delete-remote-branch origin old-feature&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which is equivalent to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ git push origin --delete old-feature&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current implementation also supports using only the branch name:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ git delete-remote-branch old-feature&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In that form, &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; is used as the remote.&lt;br /&gt;
&lt;br /&gt;
The historical default with no arguments is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ git delete-remote-branch&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which deletes &amp;lt;code&amp;gt;origin/master&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Warning:&amp;#039;&amp;#039;&amp;#039; the zero-argument form is intended for historical &amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt;-to-&amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; migration work. An explicit branch name should normally be provided.&lt;br /&gt;
&lt;br /&gt;
== Remote selection ==&lt;br /&gt;
&lt;br /&gt;
Some commands recognize a remote named &amp;lt;code&amp;gt;datacube&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This remote is intended as an intermediate location for sharing work-in-progress branches between a workstation and development or deployment machines.&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;code&amp;gt;datacube&amp;lt;/code&amp;gt; exists:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
workstation&lt;br /&gt;
    |&lt;br /&gt;
    | git resend&lt;br /&gt;
    v&lt;br /&gt;
datacube&lt;br /&gt;
    |&lt;br /&gt;
    | git receive&lt;br /&gt;
    v&lt;br /&gt;
development server&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Without &amp;lt;code&amp;gt;datacube&amp;lt;/code&amp;gt;, the equivalent workflow uses &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; where appropriate.&lt;br /&gt;
&lt;br /&gt;
This separates two concepts:&lt;br /&gt;
&lt;br /&gt;
* the repository hosting service used for permanent collaboration;&lt;br /&gt;
* an optional branch transport used to send a work-in-progress change to another machine.&lt;/div&gt;</summary>
		<author><name>Dereckson</name></author>
	</entry>
</feed>