A simple wrapper for git written in rust that makes it faster and therefore more likely to save work.
GitDone is a lightweight command-line tool written in Rust that helps streamline your workflow by simplifying common Git commands like add
, commit
, and push
. By automating these repetitive tasks, GitDone reduces friction and helps ensure you never lose your work.
- Automated Git Workflow: Handles
git add .
,git commit -m
, andgit push
in one command. - Message Prompts: If no commit message is provided, GitDone will prompt you for one.
- Efficiency: Written in Rust, it’s designed for speed and performance with minimal overhead.
- Cross-platform: Works on any platform where Rust and Git are supported (Linux, macOS, Windows).
- Git: GitDone requires Git to be installed and available in your system's PATH.
- Rust: You need to have Rust installed on your machine. You can install Rust by following the instructions on Rust's official website.
-
Clone the repository:
git clone https://github.com/nestorwheelock/gitdone.git
-
Navigate into the project directory:
cd gitdone
-
Build the project using Cargo:
cargo build --release
-
(Optional) Install it globally by moving the binary to
/usr/local/bin
:sudo mv target/release/gitdone /usr/local/bin/
Now, you can use gitdone
from anywhere in your terminal.
-
To commit and push changes with a provided message:
gitdone "your commit message"
-
If no commit message is provided, GitDone will prompt you to enter one interactively:
gitdone
# In a directory with changes to commit
gitdone "Fixed a bug and updated documentation"
GitDone will automatically:
- Stage all the changes (
git add .
) - Commit them with the provided message (
git commit -m "message"
) - Push them to the
main
(ormaster
) branch (git push origin main
)
GitDone assumes the branch name is main
. If you are working on a different branch, you can either:
- Modify the script to use the correct branch.
- Manually switch to your branch and push to it.
If you regularly use Git for version control, you’re likely familiar with the routine of adding, committing, and pushing changes. This simple workflow, while repetitive, is vital to preserving your work. GitDone automates this flow, helping you:
- Avoid forgetting to push your changes.
- Ensure commits are always accompanied by a message.
- Save time by bundling multiple Git commands into one.
Contributions are welcome! If you’d like to improve GitDone, feel free to fork the repository, make changes, and open a pull request.
- Fork the repository.
- Create a feature branch:
git checkout -b feature/your-feature
- Commit your changes:
git commit -m 'Add your feature'
- Push to the branch:
git push origin feature/your-feature
- Open a pull request.
This project is licensed under the GNU GPLv3 License. See the LICENSE file for details. You're free to use my code as long as you release your changes and maintain my authorship credit under the same license.
- Custom Branch Support: Add support for automatically detecting and pushing to the current branch.
- Interactive Mode Enhancements: More options to interactively review or select files before committing.
- Additional Git Features: Integration with other useful Git commands, like
git pull
orgit stash
.
GitDone: Simplifying your Git workflow, one commit at a time!