FakeGit:一个自欺欺人的好玩意 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
SuperFashi
V2EX    分享创造

FakeGit:一个自欺欺人的好玩意

  •  
  •   SuperFashi
    superfashi 2016-07-07 10:47:03 +08:00 5104 次点击
    这是一个创建于 3391 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Github 页面 | 博客页面


    FakeGit

    pypi

    FakeGit 是一个自欺欺人的好玩意,它会修改你的本地 git 配置文件,让 git 以为你是另外一个提交者。

    你可以将其用于你自己的项目,当然也可以用于任何你具有写权限的 git 仓库。

    示例

    FakeGit Demo

    举个栗子, 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 了解更多。但是你应该详细阅读一下下面的东西:

    这个项目和其他人的身份有关,所以最后有可能成为个身份盗贼,或者发生损害他人名誉权等这类犯法的事情

    我不承担任何责任,同时我希望各位只用其来开一些无伤大雅的玩笑,或者用来做教育或学术研究。

    第 1 条附言    2016-09-09 18:55:05 +08:00
    19 条回复    2016-07-08 00:35:12 +08:00
    Mayu
        1
    Mayu  
       2016-07-07 10:51:41 +08:00
    这...
    Niris
        2
    Niris  
       2016-07-07 11:09:48 +08:00   3
    9hills
        3
    9hills  
       2016-07-07 11:27:17 +08:00
    感谢 github 支持 GPG
    DoraJDJ
        4
    DoraJDJ  
       2016-07-07 11:31:53 +08:00
    git-blame-someone-else
    另外 GPG 签名可破解
    zealic
        5
    zealic  
       2016-07-07 11:33:45 +08:00
    GPG 原来是做这事的,还真有人会做伪造这回事...
    SuperFashi
        6
    SuperFashi  
    OP
       2016-07-07 12:03:34 +08:00
    @DoraJDJ 原来有人写过这种玩意,不过我这个更高级一点,而且顺便熟悉一下 python 的 cli 安装
    xjtlujoe
        7
    xjtlujoe  
       2016-07-07 13:02:35 +08:00
    略 diao
    popu111
        8
    popu111  
       2016-07-07 13:21:02 +08:00
    +1s
    crisfun
        9
    crisfun  
       2016-07-07 13:30:13 +08:00 via iPhone
    正需要, fake 我自己
    skydiver
        10
    skydiver  
       2016-07-07 13:33:26 +08:00   1
    git commit --author='John Doe <[email protected]>'

    Git 本身就有的功能,何必要装一个库……
    shiny
        11
    shiny  
       2016-07-07 13:39:10 +08:00 via iPhone
    @skydiver 给楼主一记闷棍
    imlonghao
        12
    imlonghao  
       2016-07-07 13:52:29 +08:00
    没 GPG 签名的就不是我 commit 的...
    SuperFashi
        13
    SuperFashi  
    OP
       2016-07-07 13:53:45 +08:00
    @shiny @skydiver 自己都不试试就来打脸,真是不专业啊。
    Citrus
        14
    Citrus  
       2016-07-07 14:11:07 +08:00 via iPhone
    @SuperFashi 没懂。。。你这个工具除了自动帮我在 GitHub 上查找以外,有哪一点不能用原生命令实现?
    skydiver
        15
    skydiver  
       2016-07-07 14:27:42 +08:00
    @SuperFashi 你不就是想说 author 和 commiter 不一样么
    SuperFashi
        16
    SuperFashi  
    OP
       2016-07-07 15:04:39 +08:00
    @Citrus 嗯,如果不是那个功能的话我就用 shell 写了。
    strwei
        17
    strwei  
       2016-07-07 15:37:31 +08:00
    装逼神器,已 star
    book1925
        18
    book1925  
       2016-07-07 15:41:18 +08:00 via Android   1
    可以伪装成长者做了一点微小的工作……
    dphdjy
        19
    dphdjy  
       2016-07-08 00:35:12 +08:00 via Android
    github 本身改 git 的 user.email 就会变成这样
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2643 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 03:39 PVG 11:39 LAX 20:39 JFK 23:39
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86