git-scripts 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/bin/feature +28 -14
- data/bin/hotfix +24 -19
- data/lib/git.rb +11 -11
- data/lib/github.rb +36 -8
- data/lib/helpers.rb +2 -2
- data/man/feature-clean.1 +1 -1
- data/man/feature-clean.1.html +120 -0
- data/man/feature-clean.1.markdown +61 -0
- data/man/feature-finish-issue.1 +1 -1
- data/man/feature-finish-issue.1.html +113 -0
- data/man/feature-finish-issue.1.markdown +56 -0
- data/man/feature-finish.1 +1 -1
- data/man/feature-finish.1.html +9 -3
- data/man/feature-finish.1.markdown +56 -0
- data/man/feature-github-test.1 +1 -1
- data/man/{feature-url.1.html → feature-github-test.1.html} +15 -9
- data/man/feature-github-test.1.markdown +53 -0
- data/man/feature-list.1 +1 -1
- data/man/feature-list.1.html +8 -2
- data/man/feature-list.1.markdown +60 -0
- data/man/feature-merge.1 +2 -2
- data/man/feature-merge.1.html +7 -1
- data/man/feature-merge.1.markdown +59 -0
- data/man/feature-merge.1.ronn +1 -0
- data/man/feature-prune.1 +1 -1
- data/man/feature-prune.1.html +116 -0
- data/man/feature-prune.1.markdown +60 -0
- data/man/feature-start.1 +1 -1
- data/man/feature-start.1.html +110 -0
- data/man/feature-start.1.markdown +53 -0
- data/man/feature-stashes.1 +1 -1
- data/man/feature-stashes.1.html +122 -0
- data/man/feature-stashes.1.markdown +63 -0
- data/man/feature-status.1 +1 -1
- data/man/feature-status.1.html +113 -0
- data/man/feature-status.1.markdown +56 -0
- data/man/feature-switch.1 +1 -1
- data/man/feature-switch.1.html +8 -2
- data/man/feature-switch.1.markdown +61 -0
- data/man/feature.1 +1 -1
- data/man/feature.1.html +8 -3
- data/man/feature.1.markdown +80 -0
- data/man/hotfix-finish-issue.1 +1 -1
- data/man/hotfix-finish-issue.1.html +113 -0
- data/man/hotfix-finish-issue.1.markdown +56 -0
- data/man/hotfix-finish.1 +1 -1
- data/man/hotfix-finish.1.html +112 -0
- data/man/hotfix-finish.1.markdown +55 -0
- data/man/hotfix-list.1 +1 -1
- data/man/hotfix-list.1.html +8 -2
- data/man/hotfix-list.1.markdown +60 -0
- data/man/hotfix-merge.1 +2 -2
- data/man/hotfix-merge.1.html +7 -1
- data/man/hotfix-merge.1.markdown +59 -0
- data/man/hotfix-merge.1.ronn +1 -0
- data/man/hotfix-start.1 +1 -1
- data/man/{hotfix-url.1.html → hotfix-start.1.html} +15 -9
- data/man/hotfix-start.1.markdown +53 -0
- data/man/hotfix-switch.1 +1 -1
- data/man/hotfix-switch.1.html +112 -0
- data/man/hotfix-switch.1.markdown +55 -0
- data/man/hotfix.1 +1 -1
- data/man/hotfix.1.html +7 -2
- data/man/hotfix.1.markdown +68 -0
- metadata +84 -64
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 9a2d6d6518dbc7ecc8f65e1d05f2d726198bbd74
|
4
|
+
data.tar.gz: 676e53c8cc96c98d13745280205c74108d7aa281
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 4d8177e27268f8eb876a17936a196364c7bb633c2ded649e4a715fa22fd6a8d8f6895e7dbe8d57122f03bab8d1ff75291bb46744b0ede02568fa1766c80efeab
|
7
|
+
data.tar.gz: 05cb8fd81e03130a108f45be0d1802cbc5d1bf2ef5faf2250958f2714a87c69a8f3f8c05838cbef976fc727c6cd2b5d9615394cd99f6ad4ace0bc6b9ade6c5d9
|
data/bin/feature
CHANGED
@@ -26,11 +26,12 @@ when 'start'
|
|
26
26
|
feature = ARGV[1]
|
27
27
|
|
28
28
|
exit unless confirm("Create feature branch named: '#{feature}' ?")
|
29
|
+
development_branch = Git::get_branch('development')
|
29
30
|
|
30
31
|
Git::run_safe([
|
31
|
-
"git checkout #{
|
32
|
+
"git checkout #{development_branch}",
|
32
33
|
"git pull --rebase",
|
33
|
-
"git branch \"#{feature}\" #{
|
34
|
+
"git branch \"#{feature}\" #{development_branch}",
|
34
35
|
"git checkout \"#{feature}\"",
|
35
36
|
])
|
36
37
|
|
@@ -96,7 +97,7 @@ when 'finish'
|
|
96
97
|
|
97
98
|
response = octokit.create_pull_request(
|
98
99
|
Github::get_github_repo,
|
99
|
-
Git::
|
100
|
+
Git::get_branch('development'),
|
100
101
|
feature,
|
101
102
|
description[:title],
|
102
103
|
description[:body]
|
@@ -118,7 +119,7 @@ when 'finish-issue'
|
|
118
119
|
|
119
120
|
pull = octokit.create_pull_request_for_issue(
|
120
121
|
Github::get_github_repo,
|
121
|
-
Git::
|
122
|
+
Git::get_branch('development'),
|
122
123
|
feature,
|
123
124
|
issue
|
124
125
|
)
|
@@ -156,14 +157,25 @@ Original issue: #{original_title}
|
|
156
157
|
puts " " + updated_pull[:html_url]
|
157
158
|
|
158
159
|
when 'merge'
|
159
|
-
dev_branch = Git::
|
160
|
+
dev_branch = Git::get_branch('development')
|
160
161
|
fail_on_local_changes
|
161
162
|
|
162
|
-
|
163
|
+
if ARGV[1] == '-n'
|
164
|
+
feature = get_branch_name_from_number(ARGV[2])
|
165
|
+
else
|
166
|
+
feature = ARGV[1] || Git::current_branch
|
167
|
+
end
|
168
|
+
|
169
|
+
|
170
|
+
pull_info = Github::get_pull_request_info_from_api(feature, dev_branch)
|
171
|
+
|
172
|
+
warning = Github::get_commit_status_warning(pull_info[:status])
|
173
|
+
unless warning.empty?
|
174
|
+
puts highlight(warning)
|
175
|
+
end
|
163
176
|
|
164
177
|
exit 1 unless confirm("Merge feature branch named: '#{feature}' ?")
|
165
178
|
|
166
|
-
description = Github::get_pull_request_description_from_api(feature, dev_branch)
|
167
179
|
update = Git::submodules_update("get")
|
168
180
|
|
169
181
|
Git::run_safe([
|
@@ -176,7 +188,7 @@ when 'merge'
|
|
176
188
|
# rebase the unpushed master commits if any.
|
177
189
|
"git rebase --preserve-merges origin/#{dev_branch}",
|
178
190
|
# merge the feature branch into master
|
179
|
-
"git merge --no-ff --edit -m #{description.shellescape} \"#{feature}\"",
|
191
|
+
"git merge --no-ff --edit -m #{pull_info[:description].shellescape} \"#{feature}\"",
|
180
192
|
# init any submodules in the master branch
|
181
193
|
"#{update}",
|
182
194
|
# delete the local feature-branch
|
@@ -216,12 +228,14 @@ when 'prune'
|
|
216
228
|
end
|
217
229
|
|
218
230
|
currentBranch = Git::current_branch()
|
231
|
+
development_branch = Git::get_branch('development')
|
232
|
+
stable_branch = Git::get_branch('stable')
|
219
233
|
|
220
234
|
def branches_cmd(location, currentBranch)
|
221
|
-
branch = location == 'origin' ?
|
235
|
+
branch = location == 'origin' ? "origin/#{development_branch}" : development_branch
|
222
236
|
return "git branch --merged #{branch} |
|
223
|
-
grep -v
|
224
|
-
grep -v
|
237
|
+
grep -v #{development_branch} |
|
238
|
+
grep -v #{stable_branch} |
|
225
239
|
grep -v #{currentBranch}"
|
226
240
|
end
|
227
241
|
|
@@ -245,9 +259,9 @@ when 'prune'
|
|
245
259
|
system("#{commands} | xargs git branch -d")
|
246
260
|
elsif location == "origin"
|
247
261
|
system("git remote prune origin &&
|
248
|
-
git branch -r --merged origin
|
249
|
-
grep -v
|
250
|
-
grep -v
|
262
|
+
git branch -r --merged origin/#{development_branch} |
|
263
|
+
grep -v #{development_branch} |
|
264
|
+
grep -v #{stable_branch} |
|
251
265
|
grep -v #{currentBranch} |
|
252
266
|
sed -n 's| origin/|:|p' |
|
253
267
|
xargs git push origin")
|
data/bin/hotfix
CHANGED
@@ -18,13 +18,14 @@ case command
|
|
18
18
|
when 'start'
|
19
19
|
require_argument(:hotfix, :start)
|
20
20
|
hotfix = hotfix_branch(ARGV[1])
|
21
|
+
stable_branch = Git::get_branch('stable')
|
21
22
|
|
22
23
|
exit unless confirm("Create hotfix branch named: '#{hotfix}' ?")
|
23
24
|
|
24
25
|
Git::run_safe([
|
25
|
-
"git checkout
|
26
|
+
"git checkout #{stable_branch}",
|
26
27
|
"git pull --rebase",
|
27
|
-
"git branch \"#{hotfix}\"
|
28
|
+
"git branch \"#{hotfix}\" #{stable_branch}",
|
28
29
|
"git checkout \"#{hotfix}\""
|
29
30
|
])
|
30
31
|
|
@@ -60,7 +61,7 @@ when 'finish'
|
|
60
61
|
|
61
62
|
response = octokit.create_pull_request(
|
62
63
|
Github::get_github_repo,
|
63
|
-
'stable',
|
64
|
+
Git::get_branch('stable'),
|
64
65
|
hotfix,
|
65
66
|
description[:title],
|
66
67
|
description[:body]
|
@@ -83,7 +84,7 @@ when 'finish-issue'
|
|
83
84
|
|
84
85
|
pull = octokit.create_pull_request_for_issue(
|
85
86
|
Github::get_github_repo,
|
86
|
-
'stable',
|
87
|
+
Git::get_branch('stable'),
|
87
88
|
hotfix,
|
88
89
|
issue
|
89
90
|
)
|
@@ -122,20 +123,24 @@ Original issue: #{original_title}
|
|
122
123
|
|
123
124
|
when 'merge'
|
124
125
|
fail_on_local_changes
|
125
|
-
dev_branch = Git::
|
126
|
+
dev_branch = Git::get_branch('development')
|
127
|
+
stable_branch = Git::get_branch('stable')
|
126
128
|
hotfix = current_hotfix_branch
|
127
129
|
|
128
130
|
Git::run_safe(["git fetch"])
|
129
131
|
|
130
|
-
|
132
|
+
pull_info = Github::get_pull_request_info_from_api(hotfix, stable_branch)
|
133
|
+
|
134
|
+
warning = Github::get_commit_status_warning(pull_info[:status])
|
135
|
+
unless warning.empty?
|
136
|
+
puts highlight(warning)
|
137
|
+
end
|
131
138
|
|
132
|
-
|
139
|
+
exit 1 unless confirm("Merge hotfix named: '#{hotfix}' ?")
|
133
140
|
|
134
|
-
commit_message = Git::get_description_from_user(description)
|
135
|
-
|
136
|
-
dev_commit_message = commit_message.sub('stable', dev_branch)
|
141
|
+
commit_message = Git::get_description_from_user(pull_info[:description])
|
142
|
+
commit_message_dev = commit_message.sub(stable_branch, dev_branch)
|
137
143
|
|
138
|
-
# Get command to init any submodules in the stable branch.
|
139
144
|
update = Git::submodules_update("get")
|
140
145
|
|
141
146
|
Git::run_safe([
|
@@ -143,29 +148,29 @@ when 'merge'
|
|
143
148
|
"git checkout #{hotfix.shellescape}",
|
144
149
|
"git rebase --preserve-merges origin/#{hotfix.shellescape}",
|
145
150
|
# Merge into stable.
|
146
|
-
"git checkout
|
151
|
+
"git checkout #{stable_branch}",
|
147
152
|
# Pull the latest changes and rebase the unpushed commits if any.
|
148
|
-
"git rebase --preserve-merges origin
|
153
|
+
"git rebase --preserve-merges origin/#{stable_branch}",
|
149
154
|
# Merge the hotfix branch into stable.
|
150
|
-
"git merge --no-ff --no-edit -m #{commit_message.shellescape} #{hotfix
|
155
|
+
"git merge --no-ff --no-edit -m #{commit_message.shellescape} \"#{hotfix}\"",
|
151
156
|
"#{update}",
|
152
157
|
# Merge into master.
|
153
158
|
"git checkout #{dev_branch}",
|
154
159
|
# Pull the latest changes and rebase the unpushed master commits if any.
|
155
160
|
"git rebase origin/#{dev_branch}",
|
156
161
|
# Merge the hotfix branch into master.
|
157
|
-
"git merge --no-ff --no-edit -m #{
|
158
|
-
# Init any submodules in the master branch. Note: no need to change
|
159
|
-
#
|
162
|
+
"git merge --no-ff --no-edit -m #{commit_message_dev.shellescape} \"#{hotfix}\"",
|
163
|
+
# Init any submodules in the master branch. Note: no need to change.
|
164
|
+
# Directories before calling git submodule since we are already in the
|
160
165
|
# projects top-level directory.
|
161
166
|
"#{update}",
|
162
167
|
# Delete the local hotfix branch.
|
163
168
|
"git branch -d #{hotfix.shellescape}",
|
164
169
|
# Checkout stable branch.
|
165
|
-
"git checkout
|
170
|
+
"git checkout #{stable_branch}"
|
166
171
|
])
|
167
172
|
|
168
|
-
puts "Successfully merged hotfix branch: #{hotfix} into
|
173
|
+
puts "Successfully merged hotfix branch: #{hotfix} into #{stable_branch} and #{dev_branch}"
|
169
174
|
puts "If you are satisfied with the result, do this:\n" + <<CMDS
|
170
175
|
git push
|
171
176
|
git checkout #{dev_branch}
|
data/lib/git.rb
CHANGED
@@ -8,15 +8,14 @@ module Git
|
|
8
8
|
return system("git rev-parse")
|
9
9
|
end
|
10
10
|
|
11
|
-
# Return the
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
"git config feature.development-branch master")
|
11
|
+
# Return the specified branch in the feature git config section.
|
12
|
+
def self.get_branch(branch = '')
|
13
|
+
specified_branch = `git config feature.#{branch.shellescape}-branch`.strip
|
14
|
+
if specified_branch.empty? || $? != 0
|
15
|
+
die("No #{branch} branch specified; set it with:\n" +
|
16
|
+
"git config feature.#{branch}-branch \"name-of-branch\"")
|
18
17
|
end
|
19
|
-
|
18
|
+
return specified_branch
|
20
19
|
end
|
21
20
|
|
22
21
|
# Returns the editor specified in the user's gitconfig.
|
@@ -62,10 +61,11 @@ module Git
|
|
62
61
|
|
63
62
|
# Returns an array of unmerged hotfix branches
|
64
63
|
def self.hotfix_branches(type)
|
64
|
+
stable_branch = get_branch('stable')
|
65
65
|
branches = if type == :unmerged
|
66
|
-
self.branches_not_merged_into(
|
66
|
+
self.branches_not_merged_into(stable_branch)
|
67
67
|
elsif type == :merged
|
68
|
-
self.merged_branches(
|
68
|
+
self.merged_branches(stable_branch)
|
69
69
|
else
|
70
70
|
raise ArgumentError, 'Must specify :merged or :unmerged in hotfix_branches.'
|
71
71
|
end
|
@@ -75,7 +75,7 @@ module Git
|
|
75
75
|
|
76
76
|
# Returns an array of unmerged feature branches
|
77
77
|
def self.feature_branches(type)
|
78
|
-
devBranch =
|
78
|
+
devBranch = get_branch('development')
|
79
79
|
|
80
80
|
branches = if type == :unmerged
|
81
81
|
self.branches_not_merged_into(devBranch)
|
data/lib/github.rb
CHANGED
@@ -133,14 +133,15 @@ Body of pull-request
|
|
133
133
|
msg.write(message)
|
134
134
|
msg.close
|
135
135
|
|
136
|
-
|
137
|
-
if (
|
138
|
-
opts = "
|
136
|
+
editor = Git::editor
|
137
|
+
if (editor == 'vim')
|
138
|
+
opts = "'+set ft=gitcommit' '+set textwidth=72'" +
|
139
|
+
" '+setlocal spell spelllang=en_us'"
|
139
140
|
else
|
140
141
|
opts = ""
|
141
142
|
end
|
142
143
|
|
143
|
-
system("
|
144
|
+
system("#{editor} #{opts} #{msg.path.shellescape}")
|
144
145
|
full_message = File.open(msg.path, "r").read
|
145
146
|
lines = full_message.split("\n")
|
146
147
|
lines = lines.reject {|line| line =~ /^\s*#/ }
|
@@ -161,22 +162,49 @@ Body of pull-request
|
|
161
162
|
}
|
162
163
|
end
|
163
164
|
|
164
|
-
def self.
|
165
|
+
def self.get_pull_request_info_from_api(branch_name, into_branch)
|
165
166
|
octokit = Github::api
|
166
167
|
# Should succeed if authentication is set up.
|
167
|
-
|
168
|
+
repo = Github::get_github_repo
|
169
|
+
pulls = octokit.pulls(repo)
|
168
170
|
pull = pulls.find {|pull| branch_name == pull[:head][:ref] }
|
169
171
|
|
170
172
|
if pull
|
171
|
-
|
173
|
+
# This will grab the latest commit and retrieve the state from it.
|
174
|
+
sha = pull[:head][:sha]
|
175
|
+
state = octokit.statuses(repo, sha).shift
|
176
|
+
state = state ? state[:state] : 'none'
|
177
|
+
|
178
|
+
desc = <<-MSG
|
172
179
|
Merge #{branch_name} (##{pull[:number]}) into #{into_branch}
|
173
180
|
|
174
181
|
#{pull[:title].gsub("\r", '')}
|
175
182
|
|
176
183
|
#{pull[:body].gsub("\r", '')}
|
177
184
|
MSG
|
185
|
+
|
186
|
+
return {:status => state, :description => desc}
|
187
|
+
else
|
188
|
+
return {:status => nil, :description => "Merge #{branch_name} into #{into_branch}"}
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
192
|
+
def self.get_commit_status_warning(status)
|
193
|
+
warning = 'Merge with caution.'
|
194
|
+
case status
|
195
|
+
when 'failure'
|
196
|
+
return 'This pull request has failed to pass continuous integration' +
|
197
|
+
" tests. #{warning}"
|
198
|
+
when 'pending'
|
199
|
+
return "Continuous integration tests have not finished. #{warning}"
|
200
|
+
when 'error'
|
201
|
+
return "Build tests were not able to complete. #{warning}"
|
202
|
+
when 'none'
|
203
|
+
return 'Continuous integration has not been set up.'
|
204
|
+
when nil
|
205
|
+
return 'No pull request found for this branch.'
|
178
206
|
else
|
179
|
-
return
|
207
|
+
return ''
|
180
208
|
end
|
181
209
|
end
|
182
210
|
end
|
data/lib/helpers.rb
CHANGED
@@ -17,7 +17,7 @@ def display_feature_help(command = nil, message = nil)
|
|
17
17
|
:switch => "feature switch (name-of-feature | -n number-of-feature) [--clean]",
|
18
18
|
:finish => "feature finish [name-of-feature]",
|
19
19
|
:'finish-issue' => "feature finish-issue issue-number",
|
20
|
-
:merge => "feature merge
|
20
|
+
:merge => "feature merge (name-of-feature | -n number-of-feature)",
|
21
21
|
:pull => "feature pull",
|
22
22
|
:prune => "feature prune <local | origin> <preview | clean>",
|
23
23
|
:status => "feature status",
|
@@ -40,7 +40,7 @@ def display_hotfix_help(command = nil, message = nil)
|
|
40
40
|
:switch => "hotfix switch (name-of-hotfix | -n number-of-hotfix)",
|
41
41
|
:finish => "hotfix finish [name-of-hotfix]",
|
42
42
|
:'finish-issue' => "hotfix finish-issue issue-number",
|
43
|
-
:merge => "hotfix merge
|
43
|
+
:merge => "hotfix merge (name-of-hotfix | -n number-of-hotfix)",
|
44
44
|
},
|
45
45
|
:command_name => 'hotfix',
|
46
46
|
:command => command,
|
data/man/feature-clean.1
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "FEATURE\-CLEAN" "1" "
|
4
|
+
.TH "FEATURE\-CLEAN" "1" "September 2013" "iFixit" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBfeature\-clean\fR \- Remove untracked files and submodules\.
|
@@ -0,0 +1,120 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta http-equiv='content-type' value='text/html;charset=utf8'>
|
5
|
+
<meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
|
6
|
+
<title>feature-clean(1) - Remove untracked files and submodules.</title>
|
7
|
+
<style type='text/css' media='all'>
|
8
|
+
/* style: man */
|
9
|
+
body#manpage {margin:0}
|
10
|
+
.mp {max-width:100ex;padding:0 9ex 1ex 4ex}
|
11
|
+
.mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
|
12
|
+
.mp h2 {margin:10px 0 0 0}
|
13
|
+
.mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
|
14
|
+
.mp h3 {margin:0 0 0 4ex}
|
15
|
+
.mp dt {margin:0;clear:left}
|
16
|
+
.mp dt.flush {float:left;width:8ex}
|
17
|
+
.mp dd {margin:0 0 0 9ex}
|
18
|
+
.mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
|
19
|
+
.mp pre {margin-bottom:20px}
|
20
|
+
.mp pre+h2,.mp pre+h3 {margin-top:22px}
|
21
|
+
.mp h2+pre,.mp h3+pre {margin-top:5px}
|
22
|
+
.mp img {display:block;margin:auto}
|
23
|
+
.mp h1.man-title {display:none}
|
24
|
+
.mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
|
25
|
+
.mp h2 {font-size:16px;line-height:1.25}
|
26
|
+
.mp h1 {font-size:20px;line-height:2}
|
27
|
+
.mp {text-align:justify;background:#fff}
|
28
|
+
.mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
|
29
|
+
.mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
|
30
|
+
.mp u {text-decoration:underline}
|
31
|
+
.mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
|
32
|
+
.mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
|
33
|
+
.mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
|
34
|
+
.mp b.man-ref {font-weight:normal;color:#434241}
|
35
|
+
.mp pre {padding:0 4ex}
|
36
|
+
.mp pre code {font-weight:normal;color:#434241}
|
37
|
+
.mp h2+pre,h3+pre {padding-left:0}
|
38
|
+
ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
|
39
|
+
ol.man-decor {width:100%}
|
40
|
+
ol.man-decor li.tl {text-align:left}
|
41
|
+
ol.man-decor li.tc {text-align:center;letter-spacing:4px}
|
42
|
+
ol.man-decor li.tr {text-align:right;float:right}
|
43
|
+
</style>
|
44
|
+
<style type='text/css' media='all'>
|
45
|
+
/* style: toc */
|
46
|
+
.man-navigation {display:block !important;position:fixed;top:0;left:113ex;height:100%;width:100%;padding:48px 0 0 0;border-left:1px solid #dbdbdb;background:#eee}
|
47
|
+
.man-navigation a,.man-navigation a:hover,.man-navigation a:link,.man-navigation a:visited {display:block;margin:0;padding:5px 2px 5px 30px;color:#999;text-decoration:none}
|
48
|
+
.man-navigation a:hover {color:#111;text-decoration:underline}
|
49
|
+
</style>
|
50
|
+
</head>
|
51
|
+
<!--
|
52
|
+
The following styles are deprecated and will be removed at some point:
|
53
|
+
div#man, div#man ol.man, div#man ol.head, div#man ol.man.
|
54
|
+
|
55
|
+
The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
|
56
|
+
.man-navigation should be used instead.
|
57
|
+
-->
|
58
|
+
<body id='manpage'>
|
59
|
+
<div class='mp' id='man'>
|
60
|
+
|
61
|
+
<div class='man-navigation' style='display:none'>
|
62
|
+
<a href="#NAME">NAME</a>
|
63
|
+
<a href="#SYNOPSIS">SYNOPSIS</a>
|
64
|
+
<a href="#DESCRIPTION">DESCRIPTION</a>
|
65
|
+
<a href="#OPTIONS">OPTIONS</a>
|
66
|
+
<a href="#COPYRIGHT">COPYRIGHT</a>
|
67
|
+
<a href="#SEE-ALSO">SEE ALSO</a>
|
68
|
+
<a href="#WWW">WWW</a>
|
69
|
+
</div>
|
70
|
+
|
71
|
+
<ol class='man-decor man-head man head'>
|
72
|
+
<li class='tl'>feature-clean(1)</li>
|
73
|
+
<li class='tc'></li>
|
74
|
+
<li class='tr'>feature-clean(1)</li>
|
75
|
+
</ol>
|
76
|
+
|
77
|
+
<h2 id="NAME">NAME</h2>
|
78
|
+
<p class="man-name">
|
79
|
+
<code>feature-clean</code> - <span class="man-whatis">Remove untracked files and submodules.</span>
|
80
|
+
</p>
|
81
|
+
|
82
|
+
<h2 id="SYNOPSIS">SYNOPSIS</h2>
|
83
|
+
|
84
|
+
<p><code>feature clean</code> [--all]</p>
|
85
|
+
|
86
|
+
<h2 id="DESCRIPTION">DESCRIPTION</h2>
|
87
|
+
|
88
|
+
<p>Remove untracked files and submodules.</p>
|
89
|
+
|
90
|
+
<p>Compatible with hotfix branches.</p>
|
91
|
+
|
92
|
+
<h2 id="OPTIONS">OPTIONS</h2>
|
93
|
+
|
94
|
+
<dl>
|
95
|
+
<dt> <code>--clean</code></dt><dd> Remove all untracked .gitignored files as well.</dd>
|
96
|
+
</dl>
|
97
|
+
|
98
|
+
|
99
|
+
<h2 id="COPYRIGHT">COPYRIGHT</h2>
|
100
|
+
|
101
|
+
<p>Copyright (c) 2012-2013 iFixit.</p>
|
102
|
+
|
103
|
+
<h2 id="SEE-ALSO">SEE ALSO</h2>
|
104
|
+
|
105
|
+
<p><a class="man-ref" href="feature.1.html">feature<span class="s">(1)</span></a></p>
|
106
|
+
|
107
|
+
<h2 id="WWW">WWW</h2>
|
108
|
+
|
109
|
+
<p>https://github.com/iFixit/git-scripts</p>
|
110
|
+
|
111
|
+
|
112
|
+
<ol class='man-decor man-foot man foot'>
|
113
|
+
<li class='tl'>iFixit</li>
|
114
|
+
<li class='tc'>September 2013</li>
|
115
|
+
<li class='tr'>feature-clean(1)</li>
|
116
|
+
</ol>
|
117
|
+
|
118
|
+
</div>
|
119
|
+
</body>
|
120
|
+
</html>
|