0

共有サーバーでも自分の名前でgit commitする

歴史的経緯や運用上の都合で1ユーザーを複数人で使ってるサーバーにアプリを置いてる時に
自分の名前でgit commitしたい。バグ入れた人も追いやすいし。
~/.gitconfigをいじるわけにはいかない。


commit前に

source ~/git_author_change_shokai
すればいいようにした。

中身はこれだけ
export GIT_AUTHOR_NAME="Sho Hashimoto"
export GIT_AUTHOR_EMAIL="hashimoto@shokai.org"

参考:version control – How do I change the author of a commit in git? – Stack Overflow

0

github pagesで作ったブランチを手元に持ってくる

最近githubのREADMEからwebページを作る機能をよく使ってるんだけど
生成されたgh-pagesブランチを手元に持ってくる方法をよく忘れる

git fetch origin
git branch -a
git checkout -b gh-pages origin/gh-pages
これでローカルにもgh-pagesが来る

gitはcheckoutの引数に意味持たせすぎで理解できない

0

githubのmasterを1週間巻き戻した

1週間ぐらい作業した内容をgithubのmasterにpushした後、よく考えたらこれ全部別プロジェクトにしたほうがいい・・
という事に気づき、1週間前の状態に戻した。


せっかくの1週間分の作業を失ってしまうのも何なので、あとで別プロジェクトにコピペするために黒歴史ブランチとしてとっておく事にした。
git push origin :masterでgithubのmasterを削除してpushしなおせばいいかと思ったけど、なぜかmasterだけは削除できなかった。


masterを黒歴史branchにする

git checkout master
git checkout -b black_history
git push origin black_history
git branch -D master
黒歴史をgithubにもpushした。ローカルのmasterは削除。


1週間前の状態をmasterにする

git logでどこまで戻るか探してから
git checkout 3c39b88a29797649b35c3e3e8b5923a86773c8d4
git checkout -b master


masterを書き換える

git push -f origin HEAD:master
これで今のブランチのHEADをリモート(github)のmasterにできるらしい


wifi_locationを巻き戻せた。

0

gitの各コマンドの使用回数

2010年8月〜現在までのログから

history -E 1 | grep git | ruby -lane 'a=$_.split(/\s+/) rescue next; next unless a[3] == "git"; puts a[5] =~ /^-.+/ ? "#{a[4]} #{a[5]}" : a[4]' | sort | uniq -c | sort -n -r
Ruby1.9.2でやったら invalid byte sequence in UTF-8 (ArgumentError) が出たので1.8.7使った。


gitは難しい、1文字違いで間違えてるの多い
8320 status
3443 add
3425 diff
2244 commit -m
2123 push
 629 log
 563 add -p
 530 branch
 524 checkout
 360 pull
 323 mv
 194 commit --amend
 185 remote
 135 ls-files
 120 init
 114 clone
 110 rm
 103 merge
  79 grep
  63 add -f
  49 tag
  41 tag -a
  33 reset
  31 rm --cache
  24 cherry-pick
  22 checkout -b
  21 branch -d
  19 log --oneline
  18 stta
  18 reset --hard
  18 dif
  14 stat
  12 sta
  12 log --help
  12 idff
  10 commit --ammend
   8 rm -r
   7 tag -m
   7 show
   7 satt
   6 tag -d
   6 sat
   6 nil
   6 log --branches
   6 difff
   6 commmit -m
   5 rm -f
   5 instaweb --httpd=thin
   5 fetch
   4 tag -v
   4 rm -rf
   4 mv -f
   4 ls
   4 commit -amend
   3 tags
   3 instaweb --httpd=webrick
   3 config --global
   3 commit -ammend
   3 commit
   3 branch -D
   3 -v
   3 --version
   3 --help
   2 tat
   2 tag --help
   2 sttat
   2 statt
   2 search
   2 reset --head
   2 mv -r
   2 mv -R
   2 mv --cache
   2 log --tags
   2 log --merges
   2 log --branche
   2 instaweb --httpd=webric
   2 instaweb
   2 ini
   2 diff -HEAD
   2 diff --HEAD
   2 dad
   2 commit-
   2 comit -m
   2 chekcout
   2 cat
   2 branches
   1 vm
   1 tree
   1 tav -a
   1 tag -l
   1 statq
   1 statp
   1 stata
   1 stash
   1 staat
   1 server
   1 rmeote
   1 rm -R
   1 rm --cached
   1 reset --soft
   1 remoteush
   1 ranch
   1 puh
   1 mv -n
   1 mori
   1 ls-tree
   1 ls-file
   1 ls --cache
   1 log -simple
   1 log -oneline
   1 log -o
   1 log -m
   1 log --tree
   1 log --tags=v
   1 log --tags=^v
   1 log --simple
   1 log --o
   1 log --left-right
   1 log --follow
   1 log --commit
   1 log --comment
   1 log --all
   1 log --a
   1 lod
   1 list
   1 lgo
   1 instaweb --httpd=mongrel
   1 init --help
   1 iinit
   1 iff
   1 git
   1 filelist
   1 file-list
   1 diff -p
   1 didf
   1 dfiff
   1 dfif
   1 dff
   1 cvsserver
   1 cp
   1 config
   1 commit --
   1 comimt -m
   1 co
   1 cloen
   1 checktou
   1 checkout -f
   1 checkout --cache
   1 checkoub -b
   1 chckout
   1 brandh -d
   1 branch -b
   1 branc
   1 brach
   1 bracch
   1 bnrach
   1 barnch
   1 ammend
   1 addd
   1 add -@
   1 ad
   1 aad
   1 --f
   1 --cached
   1 *