class GitReverser

Constants

VALID_COMMANDS

Attributes

arguments[R]

Public Class Methods

new(arguments) click to toggle source
# File lib/git_undo/git_reverser.rb, line 6
def initialize(arguments)
  @arguments = arguments
end

Public Instance Methods

reverse_add() click to toggle source
# File lib/git_undo/git_reverser.rb, line 10
def reverse_add
  "git reset #{arguments}"
end
reverse_checkout() click to toggle source
# File lib/git_undo/git_reverser.rb, line 22
def reverse_checkout
  undo_command = "git checkout -"
  if arguments.start_with?('-b')
    #also delete branch
    branch_name = arguments.split.last
    undo_command += " && git branch -D #{branch_name}"
  end
  undo_command
end
reverse_commit() click to toggle source
# File lib/git_undo/git_reverser.rb, line 14
def reverse_commit
  'git reset --soft HEAD~'
end
reverse_merge() click to toggle source
# File lib/git_undo/git_reverser.rb, line 18
def reverse_merge
  'git reset --merge ORIG_HEAD'
end
reverse_rebase() click to toggle source
# File lib/git_undo/git_reverser.rb, line 32
def reverse_rebase
  if !arguments.include?('-i')
    current_branch_command = 'git rev-parse --abbrev-ref HEAD'
    branch_name = %x[ #{current_branch_command} ].chomp

    fetch_old_state = "git checkout #{branch_name}@{1}"
    delete_branch = "git branch -D #{branch_name}"
    recreate_branch = "git checkout -b #{branch_name}"

    "#{fetch_old_state} && #{delete_branch} && #{recreate_branch}"
  end
end