This is a CLI (Command-Line Interface) program written in TypeScript, runs on Deno, leveraging the Cliffy CLI library. For now it provides a convenient way to interact with Git repositories and offers a branch syncing feature.
To run this CLI program, you need to have Deno installed on your machine. Deno is a secure JavaScript/TypeScript runtime built on V8. You can find installation instructions for Deno at https://deno.land.
To install the CLI program, follow these steps:
- Clone the repository to your local machine:
git clone git@github.com:First-Derivative/dev-tools.git
- Navigate to the project directory:
cd dev-tools
- Install the cli with the deno task 'isntall':
deno task install
Once the CLI program is installed, you can use it by executing the dev-tools
command in your terminal.
Command can be changed by updating the deno.json
file or by manually running deno install
.
The program supports the following commands:
sync <source-branch>
: Synchronizes a Git branch with another branch. It merges the changes from the source branch into the target branch. For example, to sync thefeature-branch
intomain
, run:dev-tools sync feature-branch
.
The CLI program reads the Git repository information from the directory where the command is executed, so make sure you are in the correct repository before executing any commands.
The sync
command allows you to synchronize a source branch with a target branch. This feature merges the changes from the source branch into all other branches in the repo, ensuring that latest changes are replicated.
Planned Updates:
- Support for list of branches to exclusively sync to instead of syncing all branches found in the repo.
- configs/flags for different merge type support.
- flag that specifies whether to push the branch after syncing.
If you encounter any issues or have suggestions for improvement, please open an issue on the project's GitHub repository: link-to-repo.
If you have any further questions or need assistance, feel free to contact the maintainer of this project: ashraff.hatz@gmail.com.