# Glister

![](https://img.shields.io/badge/npm%20package-v0.0.3-yellow?link=https://www.npmjs.com/package/glister) ![](https://img.shields.io/badge/node->=16.15.0-blue?color=red&) ![](https://img.shields.io/badge/commander-v9.3.0-brightgreen) ![](https://img.shields.io/badge/inquirer-v8.2.4-green) ![](https://img.shields.io/badge/chalk-v4.1.2-orange)

> Glister 😎 是一款方便管理多个 git 用户和完成其他git操作的交互式终端工具，如果您还在苦于寻找 git 多用户管理或更换用户的解决方案，那么请尝试使用 glister 吧，它可以帮助您管理多个git用户在工作和开源中实现无缝切换，它可以自动识别您当前所在工作目录是否为git仓库，以此来判断用户的应用是影响local还是global。它还能帮助您在项目中自动创建.gitignore文件，您可以根据项目开发的语言类型自行选择忽略模板，目前所支持的有: `nodejs` `python` `java`
>
> Read in other languages: ：[English](https://github.com/loclink/glister/blob/master/docs/readme_en.md) | 简体中文
>
> 如果您正在使用glister，并觉得本工具还不错，请留下一个star来表达您对glister的 :heartpulse:



## 安装：

``` shell
npm install glister -g
```



## 快速开始：

### 1. 帮助指令 :grimacing:：

使用`gt --help`查看所有glister相关的指令，先来看看都有哪些指令吧～ 

```shell
➜  ~ gt --help
Usage: gt <command> [options]

Options:
  -v, --version   查看版本号
  -h, --help      显示命令帮助

Commands:
  lan             设置交互语言
  list            查看当前用户列表
  useradd         创建一个git用户
  rm              删除指定用户
  backup          备份当前正在使用的用户信息
  use             设置git用户，若当前工作目录非git仓库，将设置为git的全局用户
  ign             为本地git仓库添加.gitignore忽略文件
  help [command]  显示命令帮助

Other:
  可以使用完整指令 "glister" 替代 "gt"
```



### 2. 初次使用 :heart_eyes:：

值得注意的是，如果您是第一次使用git，并且还未给git创建全局用户，那么在执行`gt`或者`glister`命令后，会首先要求您创建一个global用户，这个操作对于glister而言是必须的，因为glister的先决条件是要求您已安装git并且已为git创建了global用户，当您没有global用户时，glister会提醒并帮助您创建：

![Peek 2022-07-03 15-43](https://tvax2.sinaimg.cn/large/0087ufIQgy1h3ts9rb8hqg30oc0jb4qs.gif)



### 3.设置语言  :sunglasses:：

glister 的默认语言为英文，切换语言可以使用`gt lan`命令，目前仅支持："English"、"简体中文" 

```shell
PS E:\my_project\test-glister> gt lan
? Please select a language: 简体中文
语言切换成功，当前语言为：简体中文
```



### 4. 创建一个git用户 :wink:：

glister允许您随时都可以创建一个新的git用户，创建时您可以选择是否为该用户生成一个密钥，并且在创建成功后会打印公钥，方便您前往远程仓库使用：

![Peek 2022-07-03 16-21](https://tvax1.sinaimg.cn/large/0087ufIQgy1h3ttc0ttxxg30oc0jbn8a.gif)



### 5. 使用用户 :blush:：

使用`gt use`指令可以从当前用户列表中选择一个作为当前环境的用户，在不同的环境下设置用户的作用域各不相同，如果您当前路径在git仓库中，则`gt use`命令只作用于当前仓库，也就是`local`，如过您当前不在任何git仓库中，该操作将作用于全局，也就是global：

![Peek 2022-07-03 16-38](https://tvax4.sinaimg.cn/large/0087ufIQgy1h3tttv25qfg30oc0jbq9h.gif)

![Peek 2022-07-03 16-45](https://tva2.sinaimg.cn/large/0087ufIQgy1h3tu1ew1ghg30oc0jb7ds.gif)



### 6. 查看当前用户状态 :astonished:：

如果您当前正在使用的用户未保存至glister管理器中，那么在使用`gt list`命令时会提示您需要当前用户至glister管理器中，以免执行更换用户操作会丢失当前用户信息，备份操作使用`gt backup`来完成，执行后为了方便管理，需要您为其输入一个分组：

![Peek 2022-07-03 15-53](https://tvax4.sinaimg.cn/large/0087ufIQgy1h3tsiliy4hg30oc0jbjyc.gif)

在使用`gt list`命令时会出现符号：`  ✔`  标记在当前环境中用户的使用状态，并且会高亮为绿色。不同仓库下将自动读取当前用户状态，如果你在多个项目中使用了不同的用户，glister会自动帮您识别你当前的环境，并清晰的标记出您的当前用户，您可以在每个项目中使用`gt list`查看当前用户的状态和当前用户所处作用域`global`或`local`并且以不同颜色作为区分。

*如果该项目存在local用户，git会优先使用local用户作为您当前的用户，local的优先级大于global*



### 7. 删除用户 :sweat_smile:：

使用`gt rm`指令删除已创建的用户：

![Peek 2022-07-03 16-56](https://tva2.sinaimg.cn/large/0087ufIQgy1h3tudktcjlg30oc0jbgr5.gif)



### 8. 在仓库中创建.gitignore文件 :yum:：

使用`gt ign`命令从已有的模板中为您的项目创建一个忽略文件，目前已有的模板：`nodejs` `python` `java` 和一个normar模板：

![动画5](https://tva4.sinaimg.cn/large/0087ufIQly1h3qejrapeqg30s50jxnjv.gif)



## 注意事项：

1. 删除操作是不可逆的，无法找回已被删除的用户信息，key与用户信息非绑定关系，删除用户信息不会删除与之一同创建的key。
2. glister每3天检查一次版本更新，若存在新的版本需要您手动执行`npm install glister -g`更新至最新版。

## 日志：

- #### v0.0.3更新于2022/07/04

  - 修复了校验新版本错误的bug

- #### v0.0.2更新于2022/07/03

  - 区分环境local和global，不同环境设置用户作用域不同
  - 优化用户列表展示样式
  - 增加非空校验
  - 新增`pthon` `java`的.gitignore模板
  - 代码大量重构

- #### v0.0.1更新于2022/6/30:

  - 用户添加和删除以及切换当前用户
  - 打印用户列表
  - 为本地仓库添加忽略配置文件

***

## 联系：

- QQ：2285088054
- WX：coder7915

*本项目开源，欢迎交流学习。*

