FakeGit-Go 修改本地 git 配置文件 FakeGit-Go

blov • 1315 次点击    
这是一个分享于 的项目,其中的信息可能已经有所发展或是发生改变。
FakeGit 是一个自欺欺人的好玩意,它会修改你的本地 git 配置文件,让 git 以为你是另外一个提交者。 你可以将其用于你自己的项目,当然也可以用于任何你具有写权限的 git 仓库。 **示例:** ![image](http://static.oschina.net/uploads/space/2016/1102/071452_QK3Y_2720166.png) 如图中所示,jQuery 之父和 PHP 之父都在作者的项目里提交了一些好玩的玩意。这些都是真实的提交,并且会被 Github 和基本上所有 git 代码托管网站识别成其用户,只要这个用户存在。 **安装** <pre data-cke-widget-data="%7B%22code%22%3A%22go%20get%20-u%20github.com%2Fhanbang-wang%2FFakeGit-Go%2Fcmd%2Ffakegit%22%2C%22classes%22%3Anull%7D" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet" class="brush:shell;toolbar: true; auto-links: false;">go get -u github.com/hanbang-wang/FakeGit-Go/cmd/fakegit</pre> **用法** <pre data-cke-widget-data="%7B%22code%22%3A%22fakegit%20%3Ccommand%3E%20%5B--user%5D%20%5B--help%7C-h%5D%22%2C%22classes%22%3Anull%7D" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet" class="brush:cpp ;toolbar: true; auto-links: false;">fakegit &lt;command&gt; [--user] [--help|-h]</pre> FakeGit 会把所有的参数传递给原 git 命令行程序,除了以下的: <pre data-cke-widget-data="%7B%22code%22%3A%22change%20%20%20%20%20%20%20%E6%B0%B8%E8%BF%9C%E6%9B%B4%E6%94%B9%E4%BD%A0%E7%9A%84%E6%9C%AC%E5%9C%B0%E8%BA%AB%E4%BB%BD%5Cnrecover%20%20%20%20%20%20%E5%BF%AB%E9%80%9F%E5%88%A0%E9%99%A4%E6%9C%AC%E5%9C%B0%20git%20%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%86%85%E7%9A%84%20user%20%E5%85%B3%E9%94%AE%E5%AD%97%5Cn--help%2C%20-h%20%20%20%E4%B8%80%E4%B8%AA%E7%AE%80%E5%8D%95%E7%9A%84%E5%B8%AE%E5%8A%A9%22%2C%22classes%22%3Anull%7D" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet" class="brush:xml;toolbar: true; auto-links: false;">change       永远更改你的本地身份 recover      快速删除本地 git 配置文件内的 user 关键字 --help, -h   一个简单的帮助</pre> FakeGit 会拦截`--user`和紧接着的一个参数,就是提交者的信息。 **身份格式** 如果你要钦定某个人,使用`姓名 &lt;邮箱&gt;` 这样的格式,比如: <pre class="brush:cpp ;toolbar: true; auto-links: false;">--user &#39;John Doe &lt;johndoe@example.com&gt;&#39;</pre> 或者你不想填写邮箱地址,留空即可: <pre data-cke-widget-data="%7B%22code%22%3A%22--user%20&#39;No%20Email%20%3C%3E&#39;%22%2C%22classes%22%3Anull%7D" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet" class="brush:cpp ;toolbar: true; auto-links: false;">--user &#39;No Email &lt;&gt;&#39;</pre> 我同时也给 Github 用户做了个身份查询,填写用户名即可: <pre data-cke-widget-data="%7B%22code%22%3A%22--user%20&#39;example&#39;%22%2C%22classes%22%3Anull%7D" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet" class="brush:cpp ;toolbar: true; auto-links: false;">--user &#39;example&#39;</pre> **例子** <pre data-cke-widget-data="%7B%22code%22%3A%22fakegit%20commit%20-a%20-m%20%5C%22A%20example.%5C%22%20--user%20%5C%22SuperFashi%5C%22%22%2C%22classes%22%3Anull%7D" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet" class="brush:cpp ;toolbar: true; auto-links: false;">fakegit commit -a -m &#34;A example.&#34; --user &#34;SuperFashi&#34;</pre> 程序将会使用 Github API 查询使用相应 id `SuperFashi`的用户,也就是我,查询我的提交历史和提交记录中的邮箱,生成一个类似于`SuperFashi &lt;[admin@superfashi.com](mailto:admin@superfashi.com)&gt;`的格式,用这个信息来进行提交。 但是我还是推荐指定用户信息: <pre class="brush:cpp ;toolbar: true; auto-links: false;">fakegit commit -a -m &#34;A example.&#34; --user &#34;SuperFashi &lt;admin@superfashi.com&gt;&#34;</pre> 当然你也可以用 FakeGit 执行任何 git 有的命令: <pre data-cke-widget-data="%7B%22code%22%3A%22fakegit%20push%20--user%20%5C%22whateveryoulike%20%3C%3E%5C%22%5Cn%23%20%E5%92%8C%20%60git%20push%60%20%E4%B8%80%E6%A0%B7%22%2C%22classes%22%3Anull%7D" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet" class="brush:cpp ;toolbar: true; auto-links: false;">fakegit push --user &#34;whateveryoulike &lt;&gt;&#34; # 和 `git push` 一样</pre> 因为只有 commit 命令会使用 user 关键字,所以都一样。 **附加** `fakegit change`会永久更改你的本地身份,所以必须跟着`--user`,否则会抛出个错误。 `fakegit recover`是一个快速重置你本地 git 配置文件的小工具,预防你后悔或者想在突然退出程序后恢复。
授权协议:
开发语言:
Google Go 查看源码»
操作系统:
Symbian
1315 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传