Impls git-discard function
This commit is contained in:
		
							parent
							
								
									467b5212cf
								
							
						
					
					
						commit
						e812876dd3
					
				
					 1 changed files with 48 additions and 1 deletions
				
			
		| 
						 | 
					@ -4,6 +4,53 @@ function wgbranch {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function git-discard {
 | 
				
			||||||
 | 
					  option=$1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if [[ $option == '' ]]; then
 | 
				
			||||||
 | 
					      echo "Please supply option: --staged, --unstaged, --untracked, or --all"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if [[ $option == '--all' ]]; then
 | 
				
			||||||
 | 
					      git-discard --staged && git-discard --unstaged && git-discard --untracked
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if [[ $option == '--staged' ]]; then
 | 
				
			||||||
 | 
					      staged_files=$(git --no-pager diff --name-only --staged)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      echo -n "Discarding staged..." &&
 | 
				
			||||||
 | 
					      git reset HEAD $staged_files >/dev/null &&
 | 
				
			||||||
 | 
					      echo "done."
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if [[ $option == '--unstaged' ]]; then
 | 
				
			||||||
 | 
					      unstaged_files=$(git --no-pager diff --name-only)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      echo -n "Discarding unstaged..." &&
 | 
				
			||||||
 | 
					      git checkout -- $unstaged_files >/dev/null
 | 
				
			||||||
 | 
					      echo "done."
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if [[ $option == '--untracked' ]]; then
 | 
				
			||||||
 | 
					      untracked_files=$(git ls-files --others --exclude-standard)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      echo -n "Discarding untracked..."
 | 
				
			||||||
 | 
					      for file in $untracked_files; do
 | 
				
			||||||
 | 
					        if [ -f $file ]; then
 | 
				
			||||||
 | 
					            rm $file
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					          rm -rf $file
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					      done
 | 
				
			||||||
 | 
					      echo "done."
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function git-list {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Outputs staged, unstaged, untracked files
 | 
					# Outputs staged, unstaged, untracked files
 | 
				
			||||||
# Similar to `git status` output but without the cruft
 | 
					# Similar to `git status` output but without the cruft
 | 
				
			||||||
function wg-git-changed-files {
 | 
					function wg-git-changed-files {
 | 
				
			||||||
| 
						 | 
					@ -81,7 +128,7 @@ function wgfind {
 | 
				
			||||||
# wrapper fn for "git checkout" that exports previous branch to env
 | 
					# wrapper fn for "git checkout" that exports previous branch to env
 | 
				
			||||||
function wgcheckout {
 | 
					function wgcheckout {
 | 
				
			||||||
  if [ -z $1 ]; then
 | 
					  if [ -z $1 ]; then
 | 
				
			||||||
    branchname="develop"
 | 
					      branchname="develop"
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
    branchname="$1"
 | 
					    branchname="$1"
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue