Skip to content

Commit

Permalink
add git-wip and git-unwip
Browse files Browse the repository at this point in the history
Updated/re-built the documentation with:
```
cd man
make -C .. man/git-unwip.{1,html}
make -C .. man/git-wip.{1,html}
make -C .. man/git-extras.{1,html}
```
  • Loading branch information
acant committed Jan 25, 2025
1 parent df53711 commit a792dac
Show file tree
Hide file tree
Showing 14 changed files with 556 additions and 82 deletions.
20 changes: 20 additions & 0 deletions Commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@
- [`git undo`](#git-undo)
- [`git unlock`](#git-unlock)
- [`git utimes`](#git-utimes)
- [`git unwip`](#git-unwip)
- [`git wip`](#git-wip)

## git extras

Expand Down Expand Up @@ -1628,3 +1630,21 @@ Commits changes with a generated message.
## git continue
Continue current revert, rebase, merge or cherry-pick, without the need to find exact command in history.
## git wip
Create a Work In Progress(WIP) commit, which will include all changes in the
working directory. (i.e., changes to existing files, new files, removed files)
```bash
$ git wip
```
## git unwip
Undo A Work In Progress(WIP) commit and put all of those changes back into the
working directory.
```bash
$ git unwip
```
14 changes: 14 additions & 0 deletions bin/git-unwip
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/usr/bin/env bash

# Based on scripts from git-utils:
# * https://github.com/ddollar/git-utils/blob/master/git-unwip

# Check if the last commit is a 'WIP' commit
LAST_COMMIT=`git log -1 --pretty=%B | tr -d '[:space:]'`

if [ 'WIP' != $LAST_COMMIT ]; then
echo 'Last commit is not a WIP commit, so it will not be unWIP-ed.'
exit 1
fi

git undo
8 changes: 8 additions & 0 deletions bin/git-wip
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/usr/bin/env bash

# Based on scripts from git-utils:
# * https://github.com/ddollar/git-utils/blob/master/git-wip
# * https://github.com/ddollar/git-utils/blob/master/git-addremove

git add --all
git commit --all --message="WIP"
2 changes: 2 additions & 0 deletions etc/git-extras-completion.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -441,3 +441,5 @@ zstyle ':completion:*:*:git:*' user-commands $existing_user_commands \
undo:'remove latest commits' \
unlock:'unlock a file excluded from version control' \
utimes:'change files modification time to their last commit date'
unwip:'undo a WIP commit' \
wip:'create a WIP commit'
158 changes: 81 additions & 77 deletions man/git-extras.1
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
.\" generated with Ronn-NG/v0.9.1
.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
.TH "GIT\-EXTRAS" "1" "September 2024" "" "Git Extras"
.\" generated with Ronn-NG/v0.10.1
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
.TH "GIT\-EXTRAS" "1" "January 2025" "" "Git Extras"
.SH "NAME"
\fBgit\-extras\fR \- Awesome GIT utilities
.SH "SYNOPSIS"
Expand All @@ -22,154 +22,158 @@ Self update\.
.P
Change the default branch to \fB$BRANCH\fR\. If \fBgit\-extras\.default\-branch\fR isn't set, \fBinit\.defaultBranch\fR is used instead\. If none of them are set it defaults to \fBmain\fR\.
.SH "COMMANDS"
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-abort(1)\fR Abort current git operation
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-alias(1)\fR Define, search and show aliases
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-archive\-file(1)\fR Export the current HEAD of the git repository to an archive
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-authors(1)\fR Generate authors report
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-browse\-ci(1)\fR \fIView the web page for the current repository\fR
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-browse(1)\fR \fIView the web page for the current repository\fR
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-brv(1)\fR List branches sorted by their last commit date
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-bulk(1)\fR Run git commands on multiple repositories
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-changelog(1)\fR Generate a changelog report
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-clear\-soft(1)\fR Soft clean up a repository
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-clear(1)\fR Rigorously clean up a repository
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-coauthor(1)\fR Add a co\-author to the last commit
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-commits\-since(1)\fR Show commit logs since some date
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-continue(1)\fR Continue current git operation
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-contrib(1)\fR Show user's contributions
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-count(1)\fR Show commit count
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-cp(1)\fR Copy a file keeping its history
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-create\-branch(1)\fR Create branches
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-delete\-branch(1)\fR Delete branches
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-delete\-merged\-branches(1)\fR Delete merged branches
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-delete\-squashed\-branches(1)\fR Delete branches that were squashed
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-delete\-submodule(1)\fR Delete submodules
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-delete\-tag(1)\fR Delete tags
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-delta(1)\fR Lists changed files
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-effort(1)\fR Show effort statistics on file(s)
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-feature(1)\fR Create/Merge feature branch
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-force\-clone(1)\fR overwrite local repositories with clone
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-fork(1)\fR Fork a repo on github
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-fresh\-branch(1)\fR Create fresh branches
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-get(1)\fR Clone a Git repository under a configured directory
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-gh\-pages(1)\fR Create the GitHub Pages branch
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-graft(1)\fR Merge and destroy a given branch
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-guilt(1)\fR calculate change between two revisions
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-ignore\-io(1)\fR Get sample gitignore file
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-ignore(1)\fR Add \.gitignore patterns
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-info(1)\fR Returns information on current repository
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-local\-commits(1)\fR List local commits
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-lock(1)\fR Lock a file excluded from version control
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-locked(1)\fR ls files that have been locked
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-magic(1)\fR Automate add/commit/push routines
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-merge\-into(1)\fR Merge one branch into another
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-merge\-repo(1)\fR Merge two repo histories
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-missing(1)\fR Show commits missing from another branch
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-mr(1)\fR Checks out a merge request locally
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-obliterate(1)\fR rewrite past commits to remove some files
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-paste(1)\fR Send patches to pastebin for chat conversations
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-pr(1)\fR Checks out a pull request locally
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-psykorebase(1)\fR Rebase a branch with a merge commit
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-pull\-request(1)\fR Create pull request for GitHub project
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-reauthor(1)\fR Rewrite history to change author's identity
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-rebase\-patch(1)\fR Rebases a patch
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-release(1)\fR Commit, tag and push changes to the repository
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-rename\-branch(1)\fR rename local branch and push to remote
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-rename\-file(1)\fR Rename a file or directory and ensure Git recognizes the change, regardless of filesystem case\-sensitivity\.
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-rename\-remote(1)\fR Rename a remote
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-rename\-tag(1)\fR Rename a tag
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-repl(1)\fR git read\-eval\-print\-loop
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-reset\-file(1)\fR Reset one file
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-root(1)\fR show path of root
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-scp(1)\fR Copy files to SSH compatible \fBgit\-remote\fR
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-sed(1)\fR replace patterns in git\-controlled files
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-setup(1)\fR Set up a git repository
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-show\-merged\-branches(1)\fR Show merged branches
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-show\-tree(1)\fR show branch tree of commit history
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-show\-unmerged\-branches(1)\fR Show unmerged branches
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-squash(1)\fR squash N last changes up to a ref'ed commit
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-stamp(1)\fR Stamp the last commit message
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-standup(1)\fR Recall the commit history
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-summary(1)\fR Show repository summary
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-sync(1)\fR Sync local branch with remote branch
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-touch(1)\fR Touch and add file to the index
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-undo(1)\fR Remove latest commits
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-unlock(1)\fR Unlock a file excluded from version control
.IP "\[ci]" 4
.IP "\(bu" 4
\fBgit\-utimes(1)\fR Change files modification time to their last commit date
.IP "\(bu" 4
\fBgit\-unwip(1)\fR Undo a Work In Progress commit
.IP "\(bu" 4
\fBgit\-wip(1)\fR Create a Work In Progress commit
.IP "" 0
.SH "AUTHOR"
Written by Tj Holowaychuk <\fItj@vision\-media\.ca\fR>
Expand Down
12 changes: 8 additions & 4 deletions man/git-extras.html

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions man/git-extras.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,8 @@ git-extras(1) -- Awesome GIT utilities
- **git-undo(1)** Remove latest commits
- **git-unlock(1)** Unlock a file excluded from version control
- **git-utimes(1)** Change files modification time to their last commit date
- **git-unwip(1)** Undo a Work In Progress commit
- **git-wip(1)** Create a Work In Progress commit

## AUTHOR

Expand Down
Loading

0 comments on commit a792dac

Please sign in to comment.