Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gitone: Combine multiple git version controls steps into one #6

Closed
3 of 9 tasks
marskar opened this issue May 18, 2019 · 1 comment
Closed
3 of 9 tasks

Gitone: Combine multiple git version controls steps into one #6

marskar opened this issue May 18, 2019 · 1 comment

Comments

@marskar
Copy link

marskar commented May 18, 2019

Submitting Author: Name (@marskar)
Repository Link: https://github.com/marskar/gitone
Documentation Link: https://marskar.github.io/gitone/
PyPI Link: https://pypi.org/project/gitone/


  • Paste the full DESCRIPTION file inside a code block below:
The Gitone Python package takes some of the tedium out of git version control
by rolling multiple git shell commands into one shell command or Python function.

Unlike git shell commands, gitone shell commands and Python functions
can automatically generate commit messages if a commit message is not provided!

The Gitone Python package consists of 8 shell commands and Python functions:

- cam, which stands for git commit -am,
    will add and commit all changes made to tracked files.
- camp, which stands for git commit -am && git push,
    will add and commit all changes made to tracked files 
    and push the commit to the remote repository.
- acm, which stands for git add --all && git commit -m,
    will add and commit all changes made to all files 
    and push the changes to the remote repository.
- acmp, which stands for git add --all && git commit -m && git push,
    will add and commit all changes made to all files 
    and push the changes to the remote repository.
In summary, cam and camp work on only tracked files 
(those that have previously been added to git's index),
while acm and acmp work on all files by adding untracked files to git's index.

There are also the --amend versions of the above:

- amend, which is short for git commit --amend -am,
    will overwrite the previous commit by adding 
    and committing all changes made to tracked files.
- amendp, which is short for git commit --amend -am && git push --force,
    will overwrite the previous commit by adding 
    and committing all changes made to tracked files
    and then force push the overwritten commit to the remote repository.
- aamend, which is short for git add --all && git commit --amend -m,
    will overwrite the previous commit by adding 
    and committing all changes made to all files.
- aamendp, which is short for git add --all && git commit --amend -m && git push --force,
    will overwrite the previous commit by adding 
    and committing all changes made to all files
    and then force push the overwritten commit to the remote repository.

Similarly to the first four functions and commands, 
amend and amendp work on only tracked files 
(those that have previously been added to git's index), 
while aamend and aamendp work on all files 
by adding untracked files to git's index.

All Gitone functions and commands rely on the GitPython Python library. 
The command line interface relies on the click Python library.

Scope

  • Please indicate which category or categories this package falls under:

    • Data retrieval
    • Data extraction
    • Data munging
    • Data deposition
    • Data visualization
    • Reproducibility
    • Geospatial
    • Education
    • Unsure/Other (explain below)
  • Explain how the and why the package falls under these categories (briefly, 1-2 sentences). Please note any areas you are unsure of:

Git version control is important for reproducibility, because it allows users to keep track of changes made to project files.
I use git for all of my work, but teaching git to my students can be a struggle. To use the full power of git, students have to learn to use git on the command line. I know how to use several git GUI programs, but I always have to switch to the command line when problems arise.
With Gitone, anyone can jump into using git on the command line or in a Python environment. Instead of memorizing several steps, users can run a single command and learn git by doing.

  • Who is the target audience and what are scientific applications of this package?

The target audience is anyone who uses git on the command line. This package may help teachers and researchers to improve the efficiency of their git workflows. The main goal of Gitone is to lower barriers for new users, but even experienced users may appreciate functionality that will rival even the best .gitconfig!

  • Are there other Python packages that accomplish the same thing? If so, how does yours differ?

Related packages include:

None that I am aware of.

  • Any other questions or issues we should be aware of?:

P.S. Have feedback/comments about our review process? Leave a comment here

@lwasser
Copy link
Member

lwasser commented May 27, 2021

closing this as well due to no activity!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

No branches or pull requests

2 participants