Git workflow automation to keep branches in sync and reduce merge conflicts.
Git Town 13.0 adds better support for syncing feature branches after rebasing/amending commits.
When the sync-feature-strategy is set to rebase
, Git Town now force-pushes your locally rebased commits to the tracking branch (#3182). This avoids mixing locally rebased commits with outdated commits on the tracking branch. To not accidentally override new commits on the tracking branch that haven't been integrated into your local commits, Git Town now force-pushes using the --force-if-includes Git flag.
This requires raising the minimally required Git version from 2.7 to 2.30. Git 2.30 was released over 2 years ago and should be widely available at this point.
git town
instead of git-town
on the CLI (#3208).Kudos to @100rab-S, @dgentry, @kevgo, @koppor, @nicksieger, @ruudk, @srstevenson, and @tranhl for contributing code, ideas, and feedback to 18 shipped PRs and 13 resolved issues!
Git Town 12.1 implements some of the most requested features by the Git Town community. It also continues the modernization of Git Town's internals. This time we made Git Town's undo engine simpler, more robust, and more reliable by removing all remaining mutable state.
git contribute
, git observe
, and git park
. More info at https://www.git-town.com/advanced-syncing and #3095.branches.perennials
. This makes it easier to deal with situations where you have many perennial branches with similar sounding names like release-1
, release-2
, etc (#2659).Many thanks to @100rab-S, @harrismcc, @kevgo, @ruudk, @tranhl for contributing feedback, ideas, and solutions to 70 shipped PRs and 11 resolved issues!
Big thanks to @ruudk for helping identify the missing pagination for dialogs thanks to his plentiful local Git branches!
Git Town 12 continues the effort to make the Git Town user experience more consistent and intuitive by modernizing Git Town's configuration system.
git town config remove
instead of git town config reset
(#3051).git town offline yes
to enable offline mode instead of git town config offline yes
(#3049).git town config setup
. This assistant replaces the old configuration commands under git town config
, the alias
command, and the old "quick configuration" process..git-branches.toml
(#2748). The best way to create one is the setup assistant. The setup assistant can also migrate your existing Git-based configuration to the config file.--dry-run
flag to try them out safely (#2859).choco install git-town
(#763)--version
command on Windows (#2900).A heartfelt thanks to the contributors for this release: @alokpr, @brandonaut, @bryanlarsen, @ChrisMM, @eugef, @IGassmann, @Iron-Ham, @jakeleboeuf, @JaKXz, @kevgo, @koppor, @Nezteb, @ruudk, @zeronacer
git continue
now correctly handles a manually popped stash after resolving conflicts (#2758)git continue
retries failing commit, merge-proposal, create-branch, create-proposal, create-tracking-branch, and push-branch operations (#2756)git continue
ensures there are no untracked files (#2754)git switch
now allows switching to perennial branches (#2752)Git Town 11 continues the effort to make the Git Town user experience more consistent and intuitive.
git new-pull-request
is now git propose
. Not all platforms that Git Town supports use the name "pull request", so Git Town uses the word "proposal" for pull requests, merge requests, etc from now on. Nine fewer characters to type! (#2691)git abort
is merged into git undo
. From now on you just run git undo
after a Git Town command fails or finishes to get back to where you started (#2719).git ship
by default no longer syncs the branch to ship. Set the sync-before-ship
flag to restore the old behavior. This allows shipping only when the tests pass (#2735).git town config reset
now also deletes the branch lineage. This helps get you out of more configuration snafus (#2733).sync-before-ship
config option prevents git ship
from updating the branch it is about to ship. The old behavior makes sense when shipping branches locally but is conflicting with the requirements for tests to pass on CI before shipping via the hosting platform (#2714).