通过单个终端命令在您自己的仓库中直观地模拟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
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
字节跳动发布的AI编程神器IDE
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。
openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。
高分辨率纹理 3D 资产生成
Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。
一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。
3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号