FakeGit 是一个自欺欺人的好玩意,它会修改你的本地 git 配置文件,让 git 以为你是另外一个提交者。
你可以将其用于你自己的项目,当然也可以用于任何你具有写权限的 git 仓库。
举个栗子, jQuery 之父和 PHP 之父在我的项目里提交了一些好玩的玩意。当然,我对两位充满敬意且无意冒犯。
这些都是真实的提交,并且会被 Github 和基本上所有 git 代码托管网站识别成其用户,只要这个用户存在。
git clone https://github.com/hanbang-wang/FakeGit.git
cd FakeGit
python setup.py install
或者使用 pip :
pip install fakegit
fakegit <command> [--user] [--help|-h]
FakeGit 会把所有的参数传递给原 git 命令行程序,除了以下的:
change 永远更改你的本地身份
recover 快速删除本地 git 配置文件内的 user 关键字
--help, -h 一个简单的帮助
FakeGit 会拦截 --user
和紧接着的一个参数,就是提交者的信息。
如果你要钦定某个人, 使用 姓名 <邮箱>
这样的格式, 比如:
--user 'John Doe <[email protected]>'
或者你不想填写邮箱地址,留空即可:
--user 'No Email <>'
我同时也给 Github 用户做了个身份查询,填写用户名即可:
--user 'example'
fakegit commit -a -m "A example." --user SuperFashi"
程序将会使用 Github API 查询使用相应 id SuperFashi
的用户,也就是我,查询我的提交历史和提交记录中的邮箱,生成一个类似于 SuperFashi <[email protected]>
的格式,用这个信息来进行提交。
但是我还是推荐指定用户信息:
fakegit commit -a -m "A example." --user "SuperFashi <[email protected]>"
当然你也可以用 FakeGit 执行任何 git 有的命令:
fakegit push --user "whateveryoulike <>"
# 和 `git push` 一样
因为只有 commit
命令会使用 user
关键字,所以都一样。
fakegit change
会永久更改你的本地身份,所以必须跟着 --user
,否则会抛出个错误。
fakegit recover
是一个快速重置你本地 git 配置文件的小工具,预防你后悔或者想在突然退出程序后恢复。
这个小项目用的是 Unlicense ,去 LICENSE 了解更多。但是你应该详细阅读一下下面的东西:
这个项目和其他人的身份有关,所以最后有可能成为个身份盗贼,或者发生损害他人名誉权等这类犯法的事情
我不承担任何责任,同时我希望各位只用其来开一些无伤大雅的玩笑,或者用来做教育或学术研究。
更新 Golang 版本:https://github.com/hanbang-wang/FakeGit-Go
1
Mayu 2016-07-07 10:51:41 +08:00
这...
|
2
Niris 2016-07-07 11:09:48 +08:00 3
|
3
9hills 2016-07-07 11:27:17 +08:00
感谢 github 支持 GPG
|
4
DoraJDJ 2016-07-07 11:31:53 +08:00
git-blame-someone-else
另外 GPG 签名可破解 |
5
zealic 2016-07-07 11:33:45 +08:00
GPG 原来是做这事的,还真有人会做伪造这回事...
|
6
SuperFashi OP @DoraJDJ 原来有人写过这种玩意,不过我这个更高级一点,而且顺便熟悉一下 python 的 cli 安装
|
7
xjtlujoe 2016-07-07 13:02:35 +08:00
略 diao
|
8
popu111 2016-07-07 13:21:02 +08:00
+1s
|
9
crisfun 2016-07-07 13:30:13 +08:00 via iPhone
正需要, fake 我自己
|
10
skydiver 2016-07-07 13:33:26 +08:00 1
|
12
imlonghao 2016-07-07 13:52:29 +08:00
没 GPG 签名的就不是我 commit 的...
|
13
SuperFashi OP |
14
Citrus 2016-07-07 14:11:07 +08:00 via iPhone
@SuperFashi 没懂。。。你这个工具除了自动帮我在 GitHub 上查找以外,有哪一点不能用原生命令实现?
|
15
skydiver 2016-07-07 14:27:42 +08:00
@SuperFashi 你不就是想说 author 和 commiter 不一样么
|
16
SuperFashi OP @Citrus 嗯,如果不是那个功能的话我就用 shell 写了。
|
17
strwei 2016-07-07 15:37:31 +08:00
装逼神器,已 star
|
18
book1925 2016-07-07 15:41:18 +08:00 via Android 1
可以伪装成长者做了一点微小的工作……
|
19
dphdjy 2016-07-08 00:35:12 +08:00 via Android
github 本身改 git 的 user.email 就会变成这样
|