写 git commit message 的错误姿势 —— whatthecommit.com 到底说了些什么

先介绍一下:www.whatthecommit.com,一个 Git 提交日志生成网站。每次刷新的内容随机,不怕挨揍的壮士可以使用如下命令进行日常代码的提交:

git commit -m"`curl -s http://whatthecommit.com/index.txt`"

网站总结的提交记录都比较欢乐,不少内容会让码农们深有同感的会心一笑。

分享一些有趣的提交记录


1. :q!

尝试退出 vim

2. Abandon all hope, ye who enter here.

汝等进入此地,须弃绝希望。

3. Alex made me do it

Alex 让我这么干的

4. Batman! (this commit has no parents)

无父无母的蝙蝠侠(本次提交没有父节点)

5. Committing fixes in the dark, seriously, who killed my power!?

抬走,这个程序员已经中二病晚期了

6. Code was clean until manager requested to fuck it up

代码原本很优雅,直到 PM 逼我瞎鸡巴改

7. Copy-paste to fix previous copy-paste

用 ctrl-cv 修复了以前 ctrl-cv 的代码

8. Do things better, faster, stronger

更快 更高 更强

⑨. Derpy hooves

彩虹小马

10. Does anyone read this? I'll be at the coffee shop accross the street.

有人读到这条消息么?我在街对面的咖啡店。

11. Done, to whoever merges this, good luck.

我的坑挖完了,祝合并代码的人好运。

12. Fix the fixes

给补丁打补丁

13.fixed the israeli-palestinian conflict

修复了巴以冲突

14. Fixed unnecessary bug.

修复了不必要的 bug (还有必要的 bug???)

15. For great justice

为了正义

16. Friday 5pm

下班了

17. Here be Dragons

这儿有龙

18. I am sorry

抱歉~

19. I have no idea what I'm doing here.

我不知道我正在干什么

20. I know what I am doing. Trust me.

我知道我在干什么,相信我。

21. It's secret!

秘密

22. Just committing so I can go home

总之先提交,我要下班了

23. NOJIRA: No cry

没有 JIRA,就没有眼泪

24. SEXY RUSSIAN CODES WAITING FOR YOU TO CALL

性感代码 在线等call

25. should work I guess...

我猜能运行了

附录

附录 1:whatthecommit.com 合集

"Get that shit outta my master."
#GrammarNazi
$(rm -rvf .)
(c) Microsoft 1988
- Temporary commit.
--help
-m \'So I hear you like commits ...\'
.
...
/sigh
640K ought to be enough for anybody
8==========D
:(:(
:q!
<<<<<<<<<<<<<<< HEAD
??! what the ...
A fix I believe, not like I tested or anything
A long time ago, in a galaxy far far away...
AJ rebase plx?
ALASHOV SUCKS
ALEX, WE WENT OVER THIS. C++ IO SUCKS.
ALI, WE WENT OVER THIS. EXPANDTAB.
ALL SORTS OF THINGS
ANDY, WE WENT OVER THIS. C++ IO SUCKS.
Abandon all hope, ye who enter here.
Add Sandbox
Added a banner to the default admin page. Please have mercy on me =(
Added another dependency
Added missing file in previous commit
Added translation.
Ahmad sucks
Alashov sucks
Alex made me do it
Alex sucks
Ali broke the regex, lame
All your codebase are belong to us.
And a commit that I don't know the reason of...
Andy made me do it
Andy sucks
Another bug bites the dust
Another commit to keep my CAN streak going.
Apparently works-for-me is a crappy excuse.
Argh! About to give up :(
Arrrrgggg
At times like this I wish I was a Garbage Man.
Batman! (this commit has no parents)
Become a programmer, they said. It'll be fun, they said.
Best commit ever
Bit Bucket is down. What should I do now?
Blaming regex.
By works, I meant 'doesnt work'.  Works now..
COMMIT ALL THE FILES!
COOPERMARUYAMA, WE WENT OVER THIS. C++ IO SUCKS.
Chris broke the regex, lame
Christian made me do it
Christian rebase plx?
Chuck Norris Emailed Me This Patch... I'm Not Going To Question It
Code was clean until manager requested to fuck it up
Commit committed
Commit committed....
Committed some changes
Committing fixes in the dark, seriously, who killed my power!?
Committing in accordance with the prophecy.
Completed with no bugs...
Continued development...
Copy pasta fail. still had a instead of a
Copy-paste to fix previous copy-paste
Corrected mistakes
Crap. Tonight is raid night and I am already late.
DAVID SUCKS
DAVID, WE WENT OVER THIS. EXPANDTAB.
DEAL WITH IT
DIMITRIS, WE WENT OVER THIS. C++ IO SUCKS.
DIMITRIS, WE WENT OVER THIS. EXPANDTAB.
DNS_PROBE_FINISHED_NXDOMAIN
DOUGLAS, WE WENT OVER THIS. EXPANDTAB.
David broke the regex, lame
Derp
Derp search/replace fuckup
Derp, asset redirection in dev mode
Derp. Fix missing constant post rename
Derpy hooves
Do things better, faster, stronger
Does anyone read this? I'll be at the coffee shop accross the street.
Does not work.
Does this work
Don't Ask Me, I Have No Idea Why This Works Either
Don't push this commit
Done, to whoever merges this, good luck.
Don’t even try to refactor it.
Don’t mess with Voodoo
Douglas rebase plx?
EDY, WE WENT OVER THIS. EXPANDTAB.
ERIC, WE WENT OVER THIS. C++ IO SUCKS.
ERIC, WE WENT OVER THIS. EXPANDTAB.
Edy broke the regex, lame
Either Hot Shit or Total Bollocks
Eric broke the regex, lame
Errare humanum est.
FANNY SUCKS
FANNY, WE WENT OVER THIS. EXPANDTAB.
FLORIAN, WE WENT OVER THIS. C++ IO SUCKS.
FONDLED THE CODE
FOR REAL.
FUCKING ALI
FUCKING COREY
FUCKING DIMITRIS
FUCKING DOUGLAS
FUCKING ERIC
FUCKING IGOR
FUCKING LUKAS
FUCKING NATE
FUCKING OPATUT
FUCKING PASHA
FUCKING RUPERT
FUCKING SHUBHAM
FUCKING XAVIER
Fabian made me do it
Fanny sucks
Feed. You. Stuff. No time.
Final commit, ready for tagging
Fingers crossed!
Finished fondling.
First Blood
Fix PC Load Letter Error
Fix hard-coded [object Object] string (thanks!)
Fix my stupidness
Fix the fixes
Fixed Bug
Fixed a bug cause Alashov said to
Fixed a bug cause Andy said to
Fixed a bug cause Corey said to
Fixed a bug cause David said to
Fixed a bug cause Fabian said to
Fixed a bug cause Gabe said to
Fixed a bug cause Michael said to
Fixed a bug cause Pasha said to
Fixed a bug cause Xavier said to
Fixed a bug cause lupomontero said to
Fixed a bug in NoteLineCount... not seriously...
Fixed a little bug...
Fixed compilation errors
Fixed errors
Fixed so the code compiles
Fixed some shit
Fixed the build.
Fixed the fuck out of #109!
Fixed the fuck out of #288!
Fixed the fuck out of #30!
Fixed the fuck out of #336!
Fixed the fuck out of #379!
Fixed the fuck out of #43!
Fixed the fuck out of #481!
Fixed the fuck out of #525!
Fixed the fuck out of #550!
Fixed the fuck out of #555!
Fixed the fuck out of #569!
Fixed the fuck out of #620!
Fixed the fuck out of #642!
Fixed the fuck out of #67!
Fixed the fuck out of #760!
Fixed the fuck out of #779!
Fixed unnecessary bug.
Fixing AJ's bugs.
Fixing Alashov's bug.
Fixing Ali's bugs.
Fixing Fabian's bugs.
Fixing Fanny's bug.
Fixing Gabe's bugs.
Fixing James's bug.
Fixing James's bugs.
Fixing Jason's bugs.
Fixing Kevin's bug.
Fixing L1NT's bugs.
Fixing Maciej's bugs.
Fixing Masahiro's bugs.
Fixing Michael's bugs.
Fixing Pulkit's bug.
Fixing Pulkit's bugs.
Fixing Rebell's bug.
Fixing Sarah's bug.
Fixing Shaun's bug.
Fixing Shubham's bugs.
Fixing Thomas's bugs.
Fixing Xavier's bugs.
Fixing goj's bugs.
Fixing makerbot's bug.
Fixing makerbot's bugs.
Florian broke the regex, lame
For great justice.
For real, this time.
For the sake of my sanity, just ignore this...
Friday 5pm
Fuck it, YOLO!
Fucking egotistical bastard. adds expandtab to vimrc
Fucking submodule bull shit
Fucking templates.
Future self, please forgive me and don't hit me with the baseball bat again!
GABE, WE WENT OVER THIS. EXPANDTAB.
GIT :/
GUSTAVO, WE WENT OVER THIS. C++ IO SUCKS.
General commit (no IDs open) - Modifications for bad implementations
Give me a break, it's 2am.  But it works now.
Glue. Match sticks. Paper. Build script!
Gross hack because Andy doesn't know how to code
Gross hack because Chris doesn't know how to code
Gross hack because Fabian doesn't know how to code
Gross hack because Gabe doesn't know how to code
Gross hack because Jon doesn't know how to code
Gross hack because Masahiro doesn't know how to code
Gross hack because Noval doesn't know how to code
Gross hack because Qi doesn't know how to code
Gross hack because Ryan doesn't know how to code
Gross hack because Shaun doesn't know how to code
Gross hack because Steve doesn't know how to code
Gross hack because coopermaruyama doesn't know how to code
Gross hack because makerbot doesn't know how to code
Guillaume made me do it
Gustavo rebase plx?
HANLLE SUCKS
Handled a particular error.
Hanlle made me do it
Hanlle sucks
Here be Dragons
Herp derp I left the debug in there and forgot to reset errors.
Herpderp, shoulda check if it does really compile.
Herping the derp
Herping the derp derp (silly scoping error)
Herping the fucking derp right here and now.
Herpy dooves.
Hide those navs, boi!
I CAN HAZ COMMENTZ.
I CAN HAZ PYTHON, I CAN HAZ INDENTS
I __ a word
I am Root. We are Root.
I am Spartacus
I am even stupider than I thought
I am sorry
I can't believe it took so long to fix this.
I cannot believe that it took this long to write a test for this.
I did it for the lulz!
I don't believe it
I don't get paid enough for this shit.
I don't give a damn 'bout my reputation
I don't know what the hell I was thinking.
I don't know what these changes are supposed to accomplish but somebody told me to make them.
I don't know why. Just move on.
I expected something different.
I forgot to commit... So here you go.
I had a cup of tea and now it's fixed
I hate this fucking language.
I have no idea what I'm doing here.
I honestly wish I could remember what was going on here...
I immediately regret this commit.
I just evaluated random code in my console
I know what I am doing. Trust me.
I know, I know, this is not how I’m supposed to do it, but I can't think of something better.
I must enjoy torturing myself
I must have been drunk.
I must sleep... it's working... in just three hours...
I really should've committed this when I finished it...
I should get a raise for this.
I should have had a V8 this morning.
I transformed a bug into a feature. Once you learn how, you'll never forget it
I was told to leave it alone, but I have this thing called OCD, you see
I was wrong...
I will not apologize for art.
I would rather be playing SC2.
I'M PUSHING.
I'll explain this when I'm sober .. or revert it
I'll explain when you're older!
I'm guessing this may start causing us problems either soon or never.
I'm human
I'm hungry
I'm just a grunt. Don't blame me for this awful PoS.
I'm sorry.
I'm too foo for this bar
I'm too old for this shit!
I'm totally adding this to epic win. +300
ID:10T Error
IEize
IGOR SUCKS
IGOR, WE WENT OVER THIS. C++ IO SUCKS.
IGOR, WE WENT OVER THIS. EXPANDTAB.
If it's hacky and you know it clap you hands (clap clap)!
Insert Commit Message Here
Is there an achievement for this?
Is there an award for this?
Issue #1 is now Issue #2
Issue #10 is now Issue #14
Issue #2 is now Issue #3
Issue #2 is now Issue #5
Issue #2 is now Issue #8
Issue #3 is now Issue #4
Issue #3 is now Issue #8
Issue #4 is now Issue #29
Issue #5 is now Issue #11
Issue #5 is now Issue #25
Issue #8 is now Issue #15
Issue #8 is now Issue #3
Issue #9 is now Issue #1
It Compiles! 50 Points For Gryffindor.
It compiles! Ship it!
It only compiles every 2 tries... good luck.
It only compiles every 3 tries... good luck.
It only compiles every 4 tries... good luck.
It only compiles every 5 tries... good luck.
It was the best of times, it was the worst of times
It worked for me...
It works!
It'd be nice if type errors caused the compiler to issue a type error
It's 2016; why are we using ColdFusion?!
It's Working!
It's getting hard to keep up with the crap I've trashed
It's possible! you can turn a 50-line code chunk into just 3 lines. Here's how
It's secret!
JAVIERMON, WE WENT OVER THIS. EXPANDTAB.
JEFFERSON SUCKS
JIANG, WE WENT OVER THIS. C++ IO SUCKS.
JKtheSlacker broke the regex, lame
JOHN, WE WENT OVER THIS. EXPANDTAB.
JONATHAN, WE WENT OVER THIS. EXPANDTAB.
James sucks
Jason broke the regex, lame
John broke the regex, lame
John sucks
Just committing so I can go home
Just stop reading these for a while, ok..
KEVIN SUCKS
KIM, WE WENT OVER THIS. C++ IO SUCKS.
Kevin made me do it
Kevin rebase plx?
LAST time, Ali, /dev/urandom IS NOT a variable name generator...
LAST time, Andy, /dev/urandom IS NOT a variable name generator...
LAST time, Fabian, /dev/urandom IS NOT a variable name generator...
LAST time, Gabe, /dev/urandom IS NOT a variable name generator...
LAST time, Guillaume, /dev/urandom IS NOT a variable name generator...
LAST time, Igor, /dev/urandom IS NOT a variable name generator...
LAST time, J, /dev/urandom IS NOT a variable name generator...
LAST time, John, /dev/urandom IS NOT a variable name generator...
LAST time, Kelan, /dev/urandom IS NOT a variable name generator...
LAST time, Qi, /dev/urandom IS NOT a variable name generator...
LAST time, Stefano, /dev/urandom IS NOT a variable name generator...
LAST time, Steve, /dev/urandom IS NOT a variable name generator...
LAST time, Tom, /dev/urandom IS NOT a variable name generator...
LAST time, Wahyu, /dev/urandom IS NOT a variable name generator...
LAST time, foutrelis, /dev/urandom IS NOT a variable name generator...
LOL!
LOTS of changes. period
Last time I said it works? I was kidding.  Try this.
Locating the required gigapixels to render...
Lock S-foils in attack position
Love coding? here's the secret reason why
Low On Caffeine, Please Forgive Coding Style
Lukasz rebase plx?
Lyntor broke the regex, lame
MACIEJ, WE WENT OVER THIS. C++ IO SUCKS.
MASAHIRO SUCKS
MICHAEL, WE WENT OVER THIS. C++ IO SUCKS.
MOAR BIFURCATION
Maciej made me do it
Maciej rebase plx?
Made it to compile...
Major fixup.
Make Sure You Are Square With Your God Before Trying To Merge This
Make that it works in 90% of the cases.  3:30.
Marcus broke the regex, lame
Marcus rebase plx?
Merge pull my finger request
Merge pull request #67 from Lazersmoke/fix-andys-shit Fix andys shit
Merging 'WIP: Do Not Merge This Branch' Into Master
Merging the merge
Michael sucks
Minor updates
Misc. fixes
More ignore
Moved something to somewhere... goodnight...
My bad
NOJIRA: No cry
NSA backdoor - ignore
Never Run This Commit As Root
Never before had a small typo like this one caused so much damage.
Next time someone asks you how to fix an infinite loop, remember this commit
Nitpicking about alphabetizing methods, minor OCD thing
No changes after this point.
No changes made
No time to commit.. My people need me!
Nobody had ever created a function like this one before.
Not one conflict, today was a good day.
Not sure why
Nothing to see here, move along
Noval made me do it
Now added delete for real
Now it's all microservices, I hope the fad persists.
Now we tell you your browser sucks in your native tongue.
OPATUT SUCKS
Obligatory placeholder commit message
Oh no
Ok, 5am, it works.  For real.
One does not simply merge into master
One little whitespace gets its very own commit! Oh, life is so erratic!
One more time, but with feeling.
Only Tom Cruise knows why.
PEBKAC
Pascal broke the regex, lame
Pasha broke the regex, lame
Pat made me do it
Pat rebase plx?
Pat sucks
Pig
Please enter the commit message for your changes. Lines starting with '#' will be ignored, and an empty message aborts the commit.
Please no changes this time.
Popping stash
Programming the flux capacitor
Pulkit rebase plx?
Pulkit sucks
Push poorly written test can down the road another ten years
QI, WE WENT OVER THIS. EXPANDTAB.
QuickFix.
RAINER, WE WENT OVER THIS. EXPANDTAB.
REALLY FUCKING FIXED
REBELL, WE WENT OVER THIS. EXPANDTAB.
ROBERT, WE WENT OVER THIS. EXPANDTAB.
RYAN SUCKS
Refactor factories, revisit visitors
Refactored configuration.
Reinventing the wheel. Again.
Removed code.
Removed test case since code didn't pass QA
Replace all whitespaces with tabs.
Reset error count between rows. herpderp
Reticulating splines...
Revert "fuckup".
Revert "just testing, remember to revert"
SEXY RUSSIAN CODES WAITING FOR YOU TO CALL
SHIT ===> GOLD
SHUBHAM SUCKS
SOAP is a piece of shit
Same as last commit with changes
See last commit
Sepehr broke the regex, lame
Shaun broke the regex, lame
Shaun sucks
Shit code!
Shovelling coal into the server...
Shubham broke the regex, lame
So my boss wanted this button ...
Some bugs fixed
Some shit.
Somebody set up us the bomb.
Something fixed
Spinning up the hamster...
Steve rebase plx?
Still can't get this right...
Stuff
Switched off unit test 10 because the build had to go out now and there was no time to fix it properly.
Switched off unit test 12 because the build had to go out now and there was no time to fix it properly.
Switched off unit test 13 because the build had to go out now and there was no time to fix it properly.
Switched off unit test 14 because the build had to go out now and there was no time to fix it properly.
Switched off unit test 2 because the build had to go out now and there was no time to fix it properly.
Switched off unit test 3 because the build had to go out now and there was no time to fix it properly.
Switched off unit test 4 because the build had to go out now and there was no time to fix it properly.
Switched off unit test 7 because the build had to go out now and there was no time to fix it properly.
Switched off unit test 8 because the build had to go out now and there was no time to fix it properly.
Switched off unit test 9 because the build had to go out now and there was no time to fix it properly.
TDD: 1, Me: 0
THOMAS SUCKS
TODO: Fix later
TODO: write meaningful commit message
TOMEKWOJCIK, WE WENT OVER THIS. C++ IO SUCKS.
Test commit. Please ignore
Testing in progress ;)
That last commit message about silly mistakes pales in comparision to this one
That's just how I roll
The last time I tried this the monkey didn't survive. Let's hope it works better this time.
The same thing we do every night, Pinky - try to take over the world!
Things went wrong...
This Is Why We Don't Push To Production On Fridays
This branch is so dirty, even your mom can't clean it.
This bug has driven lots of coders completely mad. You won't believe how it ended up being fixed
This bunny should be killed.
This commit is a lie
This is a basic implementation that works.
This is my code. My code is amazing.
This is not the commit message you are looking for
This is supposed to crash
This is the last time we let AJ commit ascii porn in the comments.
This is the last time we let Andy commit ascii porn in the comments.
This is the last time we let Chris commit ascii porn in the comments.
This is the last time we let Hanlle commit ascii porn in the comments.
This is the last time we let James commit ascii porn in the comments.
This is the last time we let Jiang commit ascii porn in the comments.
This is the last time we let Qi commit ascii porn in the comments.
This is the last time we let Robert commit ascii porn in the comments.
This is the last time we let Ryan commit ascii porn in the comments.
This is the last time we let Sepehr commit ascii porn in the comments.
This is the last time we let Thomas commit ascii porn in the comments.
This is the last time we let lupomontero commit ascii porn in the comments.
This is the last time we let tomekwojcik commit ascii porn in the comments.
This is where it all begins...
This is why git rebase is a horrible horrible thing.
This is why the cat shouldn't sit on my keyboard.
This really should not take 19 minutes to build.
This should work until december 2013.
This solves it.
This was the most stupid bug in the world, fixed in the smartest way ever
This will definitely break in 2030 (TODO)
This will definitely break in 2031 (TODO)
This will definitely break in 2036 (TODO)
This will definitely break in 2041 (TODO)
This will definitely break in 2046 (TODO)
This will definitely break in 2049 (TODO)
This will definitely break in 2051 (TODO)
This will definitely break in 2052 (TODO)
This will definitely break in 2056 (TODO)
This will definitely break in 2057 (TODO)
This will definitely break in 2064 (TODO)
This will definitely break in 2074 (TODO)
This will definitely break in 2080 (TODO)
This will definitely break in 2089 (TODO)
Thomas made me do it
To be honest, I do not quite remember everything I changed here today. But it is all good, I tell ya.
To those I leave behind, good luck!
Todo!!!
Tony sucks
Too lazy to write descriptive message
Too tired to write descriptive message
Transpiled mainframe.
Trust me, I'm an engineer!... What the f*ck did just happened here?
Trust me, it's not badly written. It's just way above your head.
Trying to fake a conflict
Ugh. Bad rebase.
Update .gitignore
Updated
Updated build targets.
Use a real JS construct, WTF knows why this works in chromium.
Useful text
Version control is awful
WHO THE FUCK CAME UP WITH MAKE?
WICKEDONE, WE WENT OVER THIS. EXPANDTAB.
WTF is this.
We Had To Use Dark Magic To Make This Work
We should delete this crap before shipping.
We'll figure it out on Monday
Well the book was obviously wrong.
Well, it's doing something.
Whatever will be, will be 8{
Whatever.
Whee, good night.
Whee.
Who Let the Bugs Out??
Who has two thumbs and remembers the rudiments of his linear algebra courses?  Apparently, this guy.
Who knows WTF?!
Who knows...
Why The Fuck?
Working on tests (haha)
Wubbalubbadubdub!
Yep, Ali was right on this one.
Yep, Cord was right on this one.
Yep, David was right on this one.
Yep, Douglas was right on this one.
Yep, Eric was right on this one.
Yep, Fabian was right on this one.
Yep, James was right on this one.
Yep, Jefferson was right on this one.
Yep, John was right on this one.
Yep, Marcus was right on this one.
Yep, Pulkit was right on this one.
Yep, Stephen was right on this one.
Yep, javiermon was right on this one.
Yep, opatut was right on this one.
Yes, I was being sarcastic.
You can't see it, but I'm making a very angry face right now
You should have trusted me.
Your commit is writing checks your merge can't cash.
[Insert your commit message here. Be sure to make it descriptive.]
[no message]
a few bits tried to escape, but we caught them
add actual words
added security.
added some filthy stuff
added super-widget 2.0.
after of this commit remember do a git reset hard
ajax-loader hotness, oh yeah
and a comma
and so the crazy refactoring process sees the sunlight after some months in the dark!
another big bag of changes
arrgghh... damn this thing for not working.
arrrggghhhhh fixed!
asdfasdfasdfasdfasdfasdfadsf
assorted changes
bara bra grejjor
better code
better grepping
better ignores
betterer code
bifurcation
bla
breathe, =, breathe
buenas those-things.
bug fix
bugger
bump to 0.0.3-dev:wq
bumping poms
c&p fail
changed things...
changes
clarify further the brokenness of C++. why the fuck are we using C++?
commented out failing tests
commit
copy and paste is not a design pattern
cube5 made me do it
de-misunderestimating
debug line test
debug suff
debugo
derp, helper method rename
derpherp
diaaaaaazeeeeeeeeeepam
did everything
dirty hack, have a better idea ?
doh.
done. going to bed now.
epic
eppic fail David
eppic fail Florian
eppic fail Hanlle
eppic fail Kelan
eppic fail L1NT
eppic fail Lukasz
eppic fail Marcus
eppic fail Sepehr
eppic fail Stefano
eppic fail Todd
eppic fail Tony
eppic fail Wes
eppic fail Xavier
eppic fail htroyack
extra debug for stuff module
fail
ffs
final commit.
first blush
fix
fix /sigh
fix bug, for realz
fix some fucking errors
fix tpyo
fixed conflicts (LOL merge -s ours; push -f)
fixed errors in the previous commit
fixed mistaken bug
fixed shit that havent been fixed in last commit
fixed some minor stuff, might need some additional work.
fixed the israeli-palestinian conflict
fixes
foo
forgot to save that file
forgot we're not using a smart language
formatted all
foutrelis broke the regex, lame
freemasonry
fuckup.
gave up and used tables.
giggle.
grmbl
grrrr
happy monday _ bleh _
harharhar
herpderp
herpderp (redux)
hey, look over there!
hey, what's that over there?!
hmmm
hoo boy
htroyack rebase plx?
htroyack sucks
i dunno, maybe this works
i think i fixed a bug...
if you're not using et, fuck off
include shit
it is hump day _^_
it's friday
javiermon broke the regex, lame
jobs... steve jobs
just checking if git is working properly...
just shoot me
just trolling the repo
last minute fixes.
less french words
lol
lol digg
lolwhat?
lots and lots of changes
lots of changes after a lot of time
lupomontero made me do it
magic, have no clue but it works
making this thing actually usable.
marks
mergederp
minor changes
more debug... who overwrote!
more fixes
more ignored words
more ignores
more stuff
move your body every every body
need another beer
needs more cow bell
omg what have I done?
omgsosorry
oops
oops - thought I got that one.
oops!
oops, forgot to add the file
oopsie B|
pam anderson is going to love me.
pay no attention to the man behind the curtain
pep8 - cause I fell like doing a barrel roll
pep8 fixer
perfect...
pgsql is being a pain
pgsql is more strict, increase the hackiness up to 11
pointless limitation
project lead is allergic to changes...
put code that worked where the code that didn't used to be
rats
really ignore ignored worsd
remove certain things and added stuff
removed echo and die statements, lolz.
removed tests since i can't make them green
restored deleted entities just to be sure
s/    /  /g
s/import/include/
should work I guess...
should work now.
small is a real HTML tag, who knew.
some brief changes
somebody keeps erasing my changes.
someday I gonna kill someone for this shit...
someone fails and it isn't me
sometimes you just herp the derp so hard it herpderps
squash me
stopped caring 11 commits ago
stopped caring 18 commits ago
stopped caring 19 commits ago
stopped caring 20 commits ago
stopped caring 22 commits ago
stuff
syntax
tagging release w.t.f.
that coulda been bad
that's all folks
the magic is real
these confounded tests drive me nuts
these guys are flipped
things occurred
third time's a charm
this doesn't really make things faster, but I tried
this is how we generate our shit.
this is my quickfix branch and i will use to do my quickfixes
this should fix it
tl;dr
tomekwojcik sucks
totally more readable
touched...
tunning
typo
uhhhhhh
unh
unionfind is no longer being molested.
various changes
well crap.
what the hell happened here
whatthecommit.com’s server IP address could not be found.
whooooooooooooooooooooooooooo
wickedOne made me do it
wip
woa!! this one was really HARD!
work in progress
workaround for ant being a pile of fail
yet another quality commit
yo recipes
yolo push

附录 2:爬取网页内容的脚本

Python3 写的,代码量不大,直接贴代码了

# access.py
import requests

URL = 'http://whatthecommit.com/index.txt'

def get():
    r = requests.get(URL)
    if r.status_code != 200:
        print('Error, access failed!')
        return None
    if r.encoding != 'ISO-8859-1':
        print('Error, unexpected encoding:', r.encoding)
        return None
    return r.text.strip().encode("iso-8859-1").decode('gbk')
    
if __name__ == '__main__':
    print(get())
# recode.py
import threading
import os

FILENAME = 'commits.txt'

class Record(object):
    _lock = threading.Lock()
    
    def __init__(self):
        if not os.path.exists(FILENAME):
            f = open(FILENAME, 'w')
            f.close()
        with open(FILENAME, 'r') as f:
            data = f.read().split('\n')
            self._storage = set(data)
            print(self._storage)

    def __new__(cls, *args, **kwargs):
        if not hasattr(Record, '_instance'):
            with Record._lock:
                if not hasattr(Record, '_instance'):
                    Record._instance = object.__new__(cls)
        return Record._instance
        
    def insert(self, line):
        if '\n' in line:
            print('Error, multi-lines input:', line)
            return False
        if line in self._storage:
            return False
        with self._lock:
            if line in self._storage:
                return False
            self._storage.add(line)
            l = list(self._storage)
            l.sort()
            with open(FILENAME, 'w') as f:
                f.write('\n'.join(l))
        return True
        
if __name__ == '__main__':
    record = Record()
    success = record.insert('test')
    print(success)
# main.py
from access import get
from record import Record

if __name__ == '__main__':
    record = Record()
    for i in range(100000):
        line = get()
        if line is None:
            continue
        success = record.insert(line)
        if success:
            print('insert:', line)
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐