Sha256: 59dbbc0c84be2b94afa2fa91dc84bc781b44e828f9714545af1f54c6868b5dd9

Contents?: true

Size: 1.07 KB

Versions: 1

Compression:

Stored size: 1.07 KB

Contents

require 'lgit/version'

module Lgit
  ###
  # Git related class
  class Git
    def refresh_base(base)
      base ||= get_default_branch

      `git checkout #{base}`
      `git pull`
    end

    def get_branch
      `git branch --show-current`.strip
    end

    def get_default_branch
      #`git remote show origin`.split("\n")[3].match(/:\s(.*)$/)[1].strip
      `git name-rev --name-only HEAD`.strip
    end

    def create_branch(name, base)
      return unless name

      base ||= get_default_branch

      refresh_base base
      `git checkout -b #{name}`
    end

    def rebase(base)
      base ||= get_default_branch

      refresh_base base
      `git checkout - `
      `git rebase #{base}`
    end

    def delete_branches
      `git fetch -p`
      `git branch -vv`
        .split("\n")
        .reject { |branch| branch.start_with?('*') }
        .select { |branch| branch.include?(': gone]') }
        .map! { |branch| branch.match(/^\s+(.*?)\s/)[1] }
        .each do |branch|
          `git branch -D #{branch}`
          puts "#{branch} deleted"
        end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lgit-0.5.0 lib/lgit.rb