git new-pull-request
,git repo
:- support
ssh://
urls (thanks to @zhangwei) - add GitLab support (thanks to @dgjnpr)
- support
git hack
: no longer accepts a parent branch (functionality moved togit append
)
git append
: create a new branch as a child of the current branchgit prepend
: create a new branch as a parent of the current branchgit rename-branch
: implicitly uses the current branch if only one branch name provided
- fix incorrectly reported branch loop (#785)
- support multiple SSH identities (#739)
- update stashing strategy to avoid use of
git stash -u
which can delete ignored files (#744) - fix merge conflicts resolution that results in no changes (#753)
git hack
: prompt for parent branch if unknown (#760)- prevent parent branch loops (#751)
- All commands now have a
town-
prefix. Examplegit town-sync
. This is to prevent conflicts withgit-extras
which adds git commands by the same name andhub
which wants you to alias git to it and adds commands by the same name.- Use git aliases to remove the
town-
prefix if you would like. Rungit town alias true
to add aliases for allgit-town
commands (skips commands which would overwrite existing aliases).
- Use git aliases to remove the
git town set-parent-branch <child_branch_name> <parent_branch_name>
: to update a parent branch (#729)
git sync --all
: don't prompt for parent of perennial branches (#727)
git hack
: add configuration for whether or not to push (#720)
- configuration: make branch order consistent
git ship
: update uncommitted changes error message (#718)
git prune-branches
: new functionality - delete branches whose tracking branch no longer exists (#702)
git sync
: add configuration option to merge the main branch / perennial branches with their upstream (#671)git hack
,git ship
: support for running in subfolders
- internationalize check for undefined function (#678)
git new-pull-request
: ability to continue after conflicts (#700)
- remove
git sync-fork
git new-pull-request
: support forked repos (#682)git sync
: if there is a remote upstream, the main branch is synced with its upstream counterpart (#685)
- removed
git extract
- update internal storage of perennial branches
- if you have configured multiple perennial branches, you will need to reset your configuration
git town config --reset
git town config --setup
or you will be prompted the next time you run a Git Town command
- if you have configured multiple perennial branches, you will need to reset your configuration
- configuration prompt: allow user to select branch by number, ability to recover from bad input
- parent branch prompt: only show description and branch list once per command
- preserve checkout history so that
git checkout -
works as expected alongside Git Town commands (#65) git hack
: pushes the new branch to the remote repository (#664)git new-pull-request
: syncs the branch before creating the pull request (#367)git sync --all
: pushes tags (#464)git town config
: shows branch ancestry (#651)
git town version
: Homebrew installs no longer print date and SHA (#631)
git sync --all
: fix parent branch promptgit ship
: comment out default commit message (#382)
git ship
: add ability to ship remote only branch (#593)git new-pull-request
/git repo
: remove empty line output (#602)git kill
: prompt for unknown parent branch (#603)git sync --all
: prompt for unknown parent branch (#604)- support branch names with forward slashes (along with any valid branch name) (#608)
- fix
git ship --undo
(#550) - rename
non-feature-branches
toperennial-branches
(#344)- configuration is automatically updated to support this
- support for nested feature branches (#529)
- add
git rename-branch
(#474) - rename
git pull-request
togit new-pull-request
(#413, #507) - add SHA and date to output of
git town version
for manual installs - show error when trying to continue after a successful command (#364)
- support for working without a remote repository for git extract, git hack, git kill, git ship, and git sync
- implemented by our newest core committer @ricmatsui
- git pr renamed to git pull-request
- set up an alias with
git config --global alias.pr pull-request
- set up an alias with
- git ship
- now accepts all
git commit
options - author with the most commits is automatically set as the author (when not the committer) (#335)
- now accepts all
- git pr/repo
- improved linux compatibility by trying
xdg-open
beforeopen
- improved linux compatibility by trying
- improved error messages when run outside a git repository
- improved setup wizard for initial configuration in a git repository
- added contribution guide
- added tutorial
- Manual installs need to update their
PATH
to point to thesrc
folder within their clone of the repository - git extract:
- git hack: errors if branch exists remotely (#237)
- git kill:
- git pr:
- git repo: view the repository homepage (#140)
- git sync:
- git town: view and change Git Town configuration and easily view help page (#98)
- auto-completion for Fish shell (#177)
- git pr: create a new pull request (#138, 40d22e)
- git ship:
- git sync:
- git extract: errors if branch already exists (#128, 75f498)
- git sync-fork: no longer automatically sets upstream configuration (865030)
- remove needless checkouts for git-ship, git-extract, and git-hack (#150, #155, 8b385a, 35de43)
- linters for shell scripts and ruby tests (#149, 076668, 651c04)
- rake tasks for development (#170, ba74cf)
- git kill: completely removes a feature branch (#87, edd7d8)
- git sync: pushes tags to the remote when running on the main branch (#68, 71b607)
- non-feature branches: cannot be shipped and do not merge main when syncing (#45, 31dce1)
- git ship:
- updated output to show each git command and its output, updated error messages (8d8973, 60e1d8, 408e69)
- skips unnecessary pushes (0da896)
- man pages (609e11, 164f06, 27b257)
- git prune-branches (#48, 7a922e)
- Cucumber: optional Fuubar output (7c5402)
- multi-user support for feature branches (#35, ca0882)
- git sync-fork (#22, 1f1f9f)
- stores configuration in the Git configuration instead of a dedicated file (8b8695)
- only makes one fetch from the central repo per session (#15, 43400a)
- automatically prunes remote branches when fetching updates (86100f)
- always cleans up abort and continue scripts after using one of them (3be4c0)
- simpler readme, dedicated RDD document
- Cucumber feature specs (you need Ruby 2.x) (c9d175)
- much faster testing thanks to completely local test Git repos (#25, c9d175)
- fixes "unary" error messages
- lots of output and documentation improvements
- better terminal output
- Travis CI improvements
- better documentation
- displays the duration of specs
- only pulls the main branch if it has a remote
- --abort options to abort failed Git Town operations
- --continue options to continue some Git Town operations after fixing the underlying issues
- can be installed through Homebrew
- colored test output
- display summary after tests
- exit with proper status codes
- better documentation
- git hack, git sync, git extract, git ship
- basic test framework
- Travis CI integration
- self-hosting: uses Git Town for Git Town development