Git Worktree Operations: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 21: Line 21:
<syntaxhighlight lang='bash'>
<syntaxhighlight lang='bash'>
cd ../playground-temp
cd ../playground-temp
</syntaxhighlight>
After operating changes, commit as usual, and possibly remove the working tree:
<syntaxhighlight lang='bash'>
git commit -m "some work"
</syntaxhighlight>
<syntaxhighlight lang='bash'>
cd ../playground
git worktree remove ../playground-temp
</syntaxhighlight>
</syntaxhighlight>

Revision as of 22:08, 10 July 2020

Internal

Typical Working Tree Workflow

Assuming that a developer is in the middle of a major refactoring on a branch and it is impractical to commit a stable checkpoint, or even stash, switching to a different branch while leaving the current branch in the state it is in involves:

git worktree add ../playground-temp /existing/task/branch/I/need/to/work/on

It is also possible to create a new branch on-the-fly. The branch is based on the branch specified in command line:

git worktree add -b temp-emergency-branch  ../playground-temp /existing/task/branch/I/need/to/work/on

To interact with the newly checked out branch in the new working tree, simply go to the working tree directory:

cd ../playground-temp

After operating changes, commit as usual, and possibly remove the working tree:

git commit -m "some work"
cd ../playground
git worktree remove ../playground-temp