summaryrefslogtreecommitdiffstats
path: root/EXAMPLES
blob: bea9be7927c68f6e24c082bbefb3b5e34bbcdde2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
require 'git'

# needs read permission only

g = Git.open (working_dir = '.')
	(git_dir, index_file)

g.index
g.index.readable?
g.index.writable?
g.repo
g.dir

g.log   # returns array of Git::Commit objects
g.log.since('2 weeks ago')
g.log.between('v2.5', 'v2.6')
g.log.each {|l| puts l.sha }
g.blob('v2.5:Makefile').log.since('2 weeks ago')

g.object('HEAD^').to_s  # git show / git rev-parse
g.object('HEAD^').contents
g.object('v2.5:Makefile').size
g.object('v2.5:Makefile').sha

g.tree(treeish)
g.blob(treeish)
g.commit(treeish)

g.revparse('v2.5:Makefile')

g.branches # returns Git::Branch objects
g.branches.local
g.branches.remote
g.branches[:master].commit
g.branches['origin/master'].commit

g.grep('hello')  # implies HEAD
g.blob('v2.5:Makefile').grep('hello')
g.tag('v2.5').grep('hello', 'docs/')


***** IMPLEMENTED *****

g.diff
g.diff.shortstat
g.diff.summary
g.diff(commit1, commit2)
g.diff("commit1..commit2")

g.diff_tree(Git::Tree, Git::Tree)


g.status

g.ls_files
g.ls_files(:stage => true)

g.tag # returns array of Git::Tag objects


# needs write permission

g = Git.clone(URI, 'name', working_dir = GIT_DIR, {options})
	(username, password, ssl_key, git_dir, index_file)

g = Git.init
  Git.init('project')
  Git.init('/home/schacon/proj', 
		{ :git_dir => '/opt/git/proj.git', 
		  :index_file => '/tmp/index'} )



g.config('user.name', 'Scott Chacon')
g.config('user.email', 'email@email.com')
g.config('user.name')  # returns 'Scott Chacon'
g.config # returns whole config hash

g.add('.')
g.add([file1, file2])

g.remove('file.txt').and_file

g.commit('message')
g.commit_a('message')

g.reset # defaults to HEAD
g.reset_hard(Git::Commit)

g.branch('new_branch')
g.branch('new_branch').delete

g.checkout('new_branch')
g.checkout('new_branch', :create_branch => true)
g.checkout_b('new_branch')

g.merge('new_branch')
g.merge(Git::Branch)
g.merge(Git::Branch, Git::Branch)

g.fetch
g.fetch(Git::Repo)

g.pull
g.pull(Git::Repo, Git::Branch) # fetch and a merge

g.tag('tag_name') # returns Git::Tag

g.pack