
通过单个终端命令在您自己的仓库中直观地模拟Git操作。
这将生成一个图像(默认)或视频可视化,描述Git命令的行为。
命令语法直接基于Git的命令行语法,因此使用git-sim尽可能地熟悉。
示例:$ git-sim merge <branch>
<br/><br/>

查看git-sim发布博客文章了解完整详情!
Git-Sim是免费开源软件(FOSS)。您的支持将帮助我全职致力于它(和其他Git项目)!
add、branch、checkout、cherry-pick、clean、clone、commit、config、fetch、init、log、merge、mv、pull、push、rebase、remote、reset、restore、revert、rm、stash、status、switch、tag--animate标志生成动画视频(.mp4)而不是静态图像(注意:性能显著下降,建议使用--low-quality加快测试速度,准备生成演示质量视频时再移除)--color-by=author选项注意:如果您更喜欢使用Docker安装git-sim,请跳过这里的步骤(1)和(2),直接跳到下面的Docker安装部分,然后再回到这里的步骤(3)。
为您的操作系统/环境安装Manim及其依赖项:
安装git-sim:
$ pip3 install git-sim
注意:对于MacOS,建议不要使用系统Python安装Git-Sim,而是使用Homebrew安装一个Python版本来与Git-Sim一起使用。虚拟环境也应该可以。
$ cd path/to/git/repo
$ git-sim [全局选项] <子命令> [子命令选项]
可选:如果您没有现有的Git仓库来模拟命令,可以使用内置的git-dummy命令生成一个具有所需分支和提交数量的虚拟Git仓库,以便用git-sim模拟操作:
$ git-dummy --name="dummy-repo" --branches=3 --commits=10 $ cd dummy-repo $ git-sim [全局选项] <子命令> [子命令选项]
或者如果您想在一个命令中完成所有操作:
$ git-dummy --no-subdir --branches=3 --commits=10 && git-sim [全局选项] <子命令> [子命令选项]
模拟输出将创建为.jpg文件。输出文件以执行的子命令和时间戳命名,默认存储在名为git-sim_media/的子目录中。可以使用命令行标志--media-dir=path/to/output自定义此子目录的位置。请注意,当使用--animate全局标志时,渲染时间会更长,并将生成.mp4视频输出文件。
为方便起见,可以为git-sim中可用的任何全局命令行选项设置环境变量。所有环境变量都以git_sim_开头,后跟选项名称。
例如,可以像这样设置--media-dir选项的环境变量:
$ export git_sim_media_dir=~/Desktop
同样,可以像这样设置--speed选项:
$ export git_sim_speed=2
布尔标志可以这样设置:
$ export git_sim_light_mode=true
一般来说:
$ export git_sim_选项名称=选项值
在命令行上明确指定的选项优先于相应的环境变量值。
$ git-sim -h
$ git-sim <子命令> -h
基本用法类似于Git本身 - git-sim接受一组熟悉的子命令,包括"add"、"branch"、"checkout"、"cherry-pick"、"clean"、"clone"、"commit"、"config"、"fetch"、"init"、"log"、"merge"、"mv"、"pull"、"push"、"rebase"、"remote"、"reset"、"restore"、"revert"、"rm"、"stash"、"status"、"switch"、"tag"以及相应的选项。
$ git-sim [全局选项] <子命令> [子命令选项]
[全局选项]适用于整个git-sim模拟本身,包括:
-n <数字>: 显示每个分支头的提交数量。
--all: 在日志输出中显示所有本地分支。
--animate: 不输出静态图像,而是将Git命令行为以.mp4视频形式动画展示。
--color-by author: 按参数(如作者)为提交着色。
--invert-branches: 通过在适用情况下反转多个父级的顺序来反转分支的位置。
--hide-merged-branches: 隐藏已合并分支的提交,即只显示主线提交。
--media-dir: 存储模拟输出媒体文件的路径。
-d: 禁用生成后自动打开图像/视频文件。在无GUI的控制台模式下避免错误时很有用。
--light-mode: 使用浅色模式配色方案而非默认的深色模式。
--reverse, -r: 以相反方向显示提交历史。
--img-format: 图像文件的输出格式,如jpg或png。默认输出格式为jpg。
--stdout: 将原始图像数据写入标准输出,同时抑制所有其他程序输出。
--output-only-path: 仅将生成的媒体文件路径输出到标准输出。对其他程序摄取有用。
--quiet, -q: 除错误外抑制所有输出。
--highlight-commit-messages: 使提交消息文本更大更粗,并隐藏提交ID。
--style: 输出图像或动画视频的图形风格,如clean(默认)或thick。
仅用于动画的全局选项(与--animate一起使用):
--video-format: 视频文件的输出格式,如mp4或webm。默认输出格式为mp4。
--speed=n: 设置输出模拟的动画速度倍数,n可以是整数或浮点数,默认为1.5。
--low-quality: 以低质量渲染动画以加快创建时间,推荐用于非演示用途。
--show-intro: 添加带有自定义logo和标题的开场序列。
--show-outro: 添加带有自定义logo和文本的结束序列。
--title=标题: 在动画 开始时显示的自定义标题。
--logo=logo.png: 在动画开场/结束中使用的自定义logo路径。
--outro-top-text: 结束时在logo上方显示的自定义文本。
--outro-bottom-text: 结束时在logo下方显示的自定义文本。
--font: 用于显示渲染文本的字体系列。
[子命令选项]类似于特定于指定子命令的常规Git选项(完整列表见下文)。
以下是可以模拟的Git命令及其相应的选项/标志列表。
用法:git-sim add <文件1> <文件2> ... <文件n>
<文件>作为已修改的工作目录文件,或未跟踪文件用法:git-sim branch <新分支名>
<新分支名>作为要模拟创建的新分支名称用法:git-sim checkout [-b] <分支>
<分支>检出到工作目录,即将HEAD移动到指定的<分支>-b标志创建一个指定名称<分支>的新分支并检出,假设该分支尚不存在用法:git-sim cherry-pick <提交>
<提交>为要cherry-pick到活动分支的引用(分支名/标签)或提交ID$ git-sim cherry-pick <提交> -e "编辑后的提交消息"用法:git-sim clean
-i、-n、-f用法:git-sim clone <url>
<url>(网址或文件系统路径)克隆远程仓库到当前目录的新文件夹用法:git-sim commit -m "提交消息"
-m选项指定提交消息$ git-sim commit --amend -m "修改后的提交消息"用法:git-sim config [--list] <section.option> <value>
--list或-l显示所有配置用法:git-sim fetch <远程> <分支>
<远程>获取指定的<分支>到本地仓库用法:git-sim init
.git/目录及其内容用法:git-sim log [-n <数字>] [--all]
-n <数字>设置要显示的每个分支头的提交数量--all以在日志输出中显示所有本地分支用法:git-sim merge <分支> [-m "提交消息"] [--no-ff]
<branch> 作为要合并到当前分支的分支名-m 选项指定提交消息--no-ff
用法:git-sim mv <文件> <新文件>
<文件> 作为要更新名称/路径的文件<新文件> 作为文件的新名称/路径
用法:git-sim pull [<远程仓库> <分支>]
<远程仓库> 拉取指定的 <分支> 到本地仓库<远程仓库> 和 <分支>,则从默认远程仓库拉取当前分支
用法:git-sim push [<远程仓库> <分支>]
<分支> 推送到指定的 <远程仓库> 并显示本地结果<远程仓库> 和 <分支>,则将当前分支推送到默认远程仓库
用法:git-sim rebase <新基础>
<新基础> 作为要将当前分支变基到的分支名
用法:git-sim remote [add|rename|remove|get-url|set-url] [<远程仓库>] [<URL>]
git-sim remote 将列出所有现有远程仓库及其详细信息用法:git-sim reset <重置目标> [--mixed|--soft|--hard]
<重置目标> 为任何提交ID、分支名、标签或其他引用,以模拟从当前HEAD重置(默认:HEAD)--mixed,但可以使用 --soft、--hard 或 --mixed 指定
用法:git-sim restore <文件1> <文件2> ... <文件n>
<文件> 作为已修改的工作目录文件或已暂存文件
用法:git-sim revert <要还原的提交>
<要还原的提交> 为任何提交ID、分支名、标签或其他引用以模拟还原<要还原的提交> 的更改的新提交
用法:git-sim rm <文件1> <文件2> ... <文件n>
<文件> 作为被跟踪的文件
用法:git-sim stash [push|pop|apply] <文件>
<文件> 作为已修改的工作目录文件或已暂存文件<文件>,将包括所有可用文件
用法:git-sim status

用法:git-sim switch [-c] <分支>
<分支>,即将 HEAD 移动到指定的 <分支>-c 标志创建一个指定名称 <分支> 的新分支并切换到它,前提是该分支不存在
用法:git-sim tag <新标签名>
<新标签名> 作为要模拟创建的新标签的名称
$ git-sim --animate reset HEAD^
$ git checkout main $ git-sim --animate merge dev
$ git checkout dev $ git-sim --animate rebase main
$ git checkout main $ git-sim --animate cherry-pick dev
模拟git log命令的输出:
$ cd path/to/git/repo $ git-sim log
模拟git status命令的输出:
$ git-sim status
模拟将文件添加到Git暂存区:
$ git-sim add filename.ext
模拟从Git暂存区恢复文件:
$ git-sim restore filename.ext
模拟基于当前暂存的更改创建新的提交:
$ git-sim commit -m "提交信息"
模拟将所有工作目录和暂存的更改存入贮藏:
$ git-sim stash
模拟创建新的Git分支:
$ git-sim branch new-branch-name
模拟创建新的Git标签:
$ git-sim tag new-tag-name
模拟将当前分支HEAD硬重置到上一次提交:
$ git-sim reset HEAD^ --hard
模拟撤销较早提交中的更改:
$ git-sim revert HEAD~7
模拟将一个分支合并到活动分支:
$ git-sim merge feature1
模拟将活动分支变基到新的基础上:
$ git-sim rebase main
模拟从另一个分支挑选提交到活动分支:
$ git-sim cherry-pick 0ae641
使用浅色模式以白色背景和黑色文字显示,而不是默认的黑色背景和白色文字:
$ git-sim --light-mode status
将模拟输出制作成.mp4视频文件动画:
$ git-sim --animate add filename.ext
添加带有自定义文本和标志的开场和结束画面(必须包含--animate):
$ git-sim --animate --show-intro --show-outro --outro-top-text="我的Git仓库" --outro-bottom-text="感谢观看!" --logo=path/to/logo.png status
自定义输出图像/视频目录位置:
$ git-sim --media-dir=path/to/output status
可选地,设置环境变量git_sim_media_dir来设置全局默认媒体目录,在未提供--media-dir时使用。模拟输出的图像/视频将被放置在此位置,位于以相应仓库名称命名的子文件夹中。
$ export git_sim_media_dir=path/to/media/directory $ git-sim status
注意:--media-dir优先于环境变量。如果你设置了环境变量并仍然提供了参数,你会在--media-dir提供的路径中找到媒体文件。
生成低质量的输出视频以加快渲染时间(对于重复测试很有用,必须包含--animate):
$ git-sim --animate --low-quality status
有关安装manim和其他依赖项的详细信息,请参阅快速入门部分。然后运行:
$ pip3 install git-sim
$ git clone https://github.com/initialcommit-com/git-sim.git
git-sim文件夹并构建Docker镜像:$ docker build -t git-sim .
docker run --rm -v %cd%:/usr/src/git-sim git-sim [全局选项] <子命令> [子命令选项]docker run --rm -v $(pwd):/usr/src/git-sim git-sim [全局选项] <子命令> [子命令选项]可选:在MacOS / Linux / 或Windows的GitBash中,为长docker命令创建一个别名,这样你就可以像正常的git-sim命令一样运行它。为此,将以下行添加到你的.bashrc或等效文件中,然后重启终端:
git-sim() { docker run --rm -v $(pwd):/usr/src/git-sim git-sim "$@"; }
这将使你能够像上面描述的那样运行git-sim子命令。
在git-sim项目页面上了解更多关于这个工具的信息。
Jacob Stopak - 代表Initial Commit


职场AI,就用扣子
AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!


多风格AI绘画神器
堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具 ,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。


零代码AI应用开发平台
零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。


免费创建高清无水印Sora视频
Vora是一个免费创建高清无水印Sora视频的AI工具


最适合小白的AI自动化工作流平台
无需编码,轻松生成可复用、可变现的AI自动化工作流

大模型驱动的Excel数据处理工具
基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。


AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。


AI论文写作指导平台
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。


AI一键生成PPT,就用博思AIPPT!
博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。


AI赋能电商视觉革命,一站式智能商拍平台
潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号