-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy path.gitconfig
More file actions
187 lines (185 loc) · 6.58 KB
/
.gitconfig
File metadata and controls
187 lines (185 loc) · 6.58 KB
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
[user]
name = Kazuhiro Homma
email = kazu.homma@gmail.com
[github]
user = kazuph
[url "git@github.com:"]
insteadOf = https://github.com/
pushInsteadOf = https://github.com/
[color]
# colorの設定(以下のコマンドは自動で色つける)
ui = auto
status = auto
diff = auto
branch = auto
interactive = auto
grep = auto
[core]
# globalな.gitignoreの指定
excludesfile = ~/.gitignore_global
autoCRLF = false
editor = vi
quotepath = false
precomposeunicode = true
pager = delta --keep-plus-minus-markers
symlinks = true
[interactive]
diffFilter = delta --color-only
[push]
default = matching
[pull]
rebase = false
ff = only
[merge]
ff = false
tool = vimdiff
[alias]
ignore = "!gi() { curl -sL https://www.toptal.com/developers/gitignore/api/$@ ;}; gi"
s = status
st = status
ss = status -s
sh = show
so = remote show origin
# pull/push/fetch
ft = fetch
ftp = fetch --prune
# pull rebase
up = !git fetch && git branch | grep \\* | cut -d' ' -f 2 | xargs -I% git pull --rebase origin %
# push origin and set upstream
pu = !git push -u origin `git branch | grep \\* | cut -d' ' -f 2`
put = !git pu --tags
# rebase
rbc = rebase --continue
rba = rebase --abort
rbi = rebase -i
rbi1 = rebase -i HEAD^
rbi2 = rebase -i HEAD^^
rbi3 = rebase -i HEAD^^^
rbi4 = rebase -i HEAD^^^^
rbi5 = rebase -i HEAD^^^^^
# merge
mn = merge --no-ff
nomerge = reset --hard ORIG_HEAD # マージを途中でやめる
# comit
aa = add .
ad = add
ap = add -p
c = commit
ci = commit
ca = commit -a # modifiedなファイルを全てstageへ
cam = commit --amend # 直前のcommitを修正
co = checkout
cb = checkout -b # branch切ってcheckoutする
ct = checkout --track # remoteのbranchを追跡
cm = checkout main
cd = checkout develop
cs = checkout staging
# branch関連
br = branch
ba = branch -a # originも含めた全てのbranchを表示
bm = branch --merged # merge済みのbranchを表示
bn = branch --no-merged # mergeしてないbranchを表示
bo = branch -r # remote branchを表示
sb = show-branch # branchの進捗とかも表示
# log関連
edit-unmerged = "!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; vi `f`"
wc = whatchanged # logに変更されたファイルも一緒に出す
ls = log --stat # logに変更されたファイルも一緒に出す
lp = log -p # diffも一緒に出す
la = log --pretty=\"format:%ad %h (%an): %s\" --date=short # ざっくりログ出す
lr = log origin # originのlog
ll = log --date=short --pretty=format:'%Cgreen%h %cd %Cblue%cn%x09%Creset%s' # onelineでlogを出す
oneline = log --pretty=oneline
ranking = shortlog -s -n --no-merges
# logをtree表示
log-graph = log --graph --date=short --pretty=format:'%Cgreen%h %cd %Cblue%cn %Creset%s'
log-all = log --graph --all --color --pretty='%x09%h %cn%x09%s %Cred%d%Creset'
# reset
rhs = reset --soft HEAD
rhs1 = reset --soft HEAD~
rhs2 = reset --soft HEAD~~
rhs3 = reset --soft HEAD~~~
rhs4 = reset --soft HEAD~~~~
rhs5 = reset --soft HEAD~~~~~
rhh = reset --hard HEAD # 取り返しのつかないことをしてしまった……!
rhh1 = reset --hard HEAD~
rhh2 = reset --hard HEAD~~
rhh3 = reset --hard HEAD~~~
rhh4 = reset --hard HEAD~~~~
rhh5 = reset --hard HEAD~~~~~
cl = !git status | grep 'both modified' | perl -pe 's/ +/ /g' | cut -d' ' -f3
ml = !git status | grep 'modified' | perl -pe 's/ +/ /g' | cut -d' ' -f2
# diff関連
di = diff
dm = diff main # masterとのdiff
dw = diff --color-words # 単語単位でいろつけてdiff
dc = diff --cached # addされているものとのdiff
ds = diff --staged # 同上(1.6.1移行)
d1 = diff HEAD~ # HEADから1つ前とdiff
d2 = diff HEAD~~ # HEADから2つ前とdiff
d3 = diff HEAD~~~ # HEADから3つ前とdiff
d4 = diff HEAD~~~~ # HEADから4つ前とdiff
d5 = diff HEAD~~~~~ # HEADから5つ前とdiff
d10 = diff HEAD~~~~~~~~~~ # HEADから10前とdiff
# edit関連
# modified or untrackedなファイルを編集する
edit = "!f() { git status -s | cut -b 4- | grep -v '\\/$' | uniq ; }; vi `f`"
# mergeの際にconflictが起きたファイルを編集
edit-unmerged = "!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; vi `f`"
# mergeの際にconflictが起きたファイルをadd
add-unmerged = "!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; git add `f`"
delete-unmerged = "!f() { git ls-files --deleted | cut -f2 | sort -u ; }; git rm `f`"
# 指定したコミットで変更されたファイルを編集する
modified = "!f() { git diff $1..$1\\^ --name-only | xargs sh -c 'vi "$@" < /dev/tty' - ;}; f"
# grep関連
gr = grep
gn = grep -n
sm = submodule
# smup = submodule foreach "git checkout master; git pull origin master"
# mergeされたbranchを一括削除
rmm = !git branch --merged | grep -vE '(master|main)' | grep -v develop | grep -v \\* | xargs -I % echo %
rmmm = !git branch --merged | grep -vE '(master|main)' | grep -v develop | grep -v \\* | xargs -I % git branch -d %
b = !"(for i in `git branch | colrm 1 2` ; do echo `git log --date=iso8601 -n 1 --pretty=\"format:[%ai] %h\" $i` $i ; done) | sort -r"
pushf = "push --force-with-lease"
[http]
postBuffer = 2M
#driver for merging XCode project files
[merge "mergepbx"]
name = Xcode project files merger
driver = mergepbx %O %A %B
[ghq]
root = "~/src"
[init]
defaultBranch = main
[delta]
navigate = true # use n and N to move between diff sections
light = false # set to true if you're in a terminal w/ a light background color (e.g. the default macOS terminal)
[merge]
conflictstyle = diff3
[diff]
colorMoved = default
[gtr "editor"]
default = cursor
[gtr "ai"]
default = claude
[gtr "copy"]
include = **/.env
include = **/.env.local
include = **/.env.development
include = **/.dev.vars
[wt]
basedir = ".worktree"
copyignored = true
nocopy = node_modules/
nocopy = dist/
nocopy = build/
nocopy = cdk.out/
nocopy = .next/
nocopy = .turbo/
nocopy = .wrangler/
nocopy = .expo/
nocopy = .playwright-mcp/
nocopy = .artifacts/
nocopy = .lsmcp/
nocopy = .serena/
nocopy = .pnpm-store/