管理多个Git回购
gita的Python项目详细描述
在这里,分支颜色区分了本地分支和远程分支的5种情况:
- 白色:本地没有遥控器
- 绿色:本地与远程相同
- 红色:本地与远程已不同
- 紫色:本地在远程之前(适合推送)
- 黄色:本地在远程之后(适合合并)
前面选择紫色,后面选择黄色的动机是 蓝移和红移, 使用绿色作为基准。
附加状态符号表示
+
:分阶段更改*
:未分页的更改:未跟踪的文件/文件夹
记帐子命令是
gita add<;repo path(s)>;
:将repo添加到gita
gita rm<;回购名称>;
:从gita中删除回购
(不会从磁盘中删除文件)gita ll
:显示所有回购的状态gita ls
:显示所有回购的名称gita ls<;repo name>;
:显示一个repo的绝对路径gita rename<;回购名称>;<;新名称>;
:重命名回购gita info
:显示已使用和未使用的信息项gita-v
:显示gita版本
回购路径保存在$xdg_config_home/gita/repo_path中(很可能<代码>~/.config/gita/repo路径
)。
委派子命令有两种格式
gita<;sub command>;[回购名称]
:可选回购输入,无输入表示所有回购。gita<;sub command>;<;repo name(s)>;
:必需的repo name(s)输入
默认情况下,仅fetch
和pull
接受可选输入。
如果指定了多个repo,git命令将异步运行,
除了需要用户输入的log
、difftool
和mergetool
之外。
定制
自定义委派子命令可以在$xdg_config_home/gita/cmds.yml中定义
(很可能是
~/.config/gita/cmds.yml
)。
如果存在名称冲突,则它们会隐藏默认值。
默认委派子命令在
cmds.yml。
例如,gita stat<;repo name(s)>;
注册为
stat:cmd:diff --stathelp:show edit statistics
它执行git diff--stat
如果委托的git命令是一个单词,则可以省略cmd
标记。
有关示例,请参见push
。
要禁用异步执行,请将disable_async
标记设置为true
。
有关示例,请参见Difftool。
如果希望自定义命令的行为类似于gita fetch
,即应用
如果未指定任何内容,则向所有repo发出命令,
将allow_all
选项设置为true
。
例如,下面的代码片段创建了一个新命令
gita comaster[repo name(s)]
带有可选的repo name输入。
comaster:cmd:checkout masterallow_all:truehelp:checkout the master branch
另一个自定义项是由gita ll
显示的信息项。
已使用和未使用的信息项用gita info
显示,您可以
创建$xdg_config_home/gita/info.yml
以自定义它。例如,
默认信息项设置对应于
-branch-commit_msg
要创建自己的信息项,请定义一个名为extra\u info\u items的字典
在
$xdg_config_home/gita/extra_repo_info.yml中。它应该将字符串映射到函数,
其中字符串是信息项名称,函数采用repo路径
作为输入。下面是一个简单的例子。
defget_delim(path:str)->str:return'|'extra_info_items={'delim':get_delim}
如果有效,您将在
gita info
输出。要使用它们,请编辑$xdg_config_home/gita/extra_repo_info.yml
超人模式
超人模式委托任何git命令/别名。 用法:
gita super [repo-name(s)] <any-git-command-with-or-without-options>
这里repo name(s)
是可选的,缺勤表示所有repo。
例如,
Gita超级签出主机
将所有回购放在主机分支上gita super frontend repo backend repo commit-am'实现新功能'
执行git commit-am'implement a new feature'
用于frontend repo
和backend repo
要求
由于使用了 f字符串 以及异步模块。
在幕后,gita使用子流程来运行git命令/别名。
因此,安装的git版本可能很重要。
我的机器上有git1.8.3.1
,2.17.2
,和2.20.1
,并且
他们的结果是一致的。
安装
要安装最新版本,请运行
pip3 install -U gita
如果首选开发模式, 下载源代码并运行
pip3 install -e <gita-source-folder>
无论哪种情况,在终端中调用gita都可能不起作用,
然后,您可以将以下行放入.bashrc
文件中。
alias gita="python3 -m gita"
windows用户可能需要在终端中启用ansi转义序列,否则 分支颜色w不工作。 有关详细信息,请参阅此stackoverflow post
自动完成
<下载>.gita completion.bash 并将其输入.bashrc
贡献
要做出贡献,您可以
- 报告/修复错误
- 请求/实现功能
- 启动/推荐此项目
要在本地运行测试,只需pytest
。
更多实现细节见
design.md
你也可以在帕特伦向我捐款。 任何金额都非常感谢!
贡献者
诺萨瑟,MC0239,DGRANT,萨米布,贝斯特韦伯,TPOUT,帕布罗卡斯特拉诺
其他多回购工具
我还没有试过,但我听说了一些关于它们的好消息。