# GitLink CLI 卸载指南

本文档介绍如何完全卸载 GitLink CLI 及其相关文件。

## 📋 卸载方式

### 一、Linux/macOS

#### 方式1: 使用卸载脚本（推荐）

```bash
# 交互式卸载（保留配置）
bash uninstall.sh

# 完全删除所有文件（包括配置）
bash uninstall.sh --purge

# 自动确认，不询问
bash uninstall.sh -y
```

#### 方式2: 在线执行

```bash
# 保留配置
curl -sSL https://www.gitlink.org.cn/Gitlink/gitlink-cli/raw/master/uninstall.sh | bash

# 完全删除
curl -sSL https://www.gitlink.org.cn/Gitlink/gitlink-cli/raw/master/uninstall.sh | bash -s -- --purge
```

#### 方式3: 手动删除

```bash
# 删除二进制
sudo rm -f /usr/local/bin/gitlink-cli
# 或
sudo rm -f /usr/bin/gitlink-cli

# 删除Skills
rm -rf ~/.gitlink/skills

# 删除配置（可选）
rm -rf ~/.gitlink-cli
rm -rf ~/.gitlink
rm -rf ~/.config/gitlink-cli
```

---

### 二、Windows

#### 方式1: PowerShell 脚本（推荐）

```powershell
# 交互式卸载
powershell -NoProfile -ExecutionPolicy Bypass -File uninstall.ps1

# 完全删除
powershell -NoProfile -ExecutionPolicy Bypass -File uninstall.ps1 -Purge

# 自动确认
.\uninstall.ps1 -Yes
```

#### 方式2: 手动删除

```powershell
# 删除二进制（根据安装位置）
Remove-Item "$env:USERPROFILE\.gitlink-cli\bin\gitlink-cli.exe"

# 删除Skills
Remove-Item -Recurse -Force "$env:USERPROFILE\.gitlink\skills"

# 删除配置（可选）
Remove-Item -Recurse -Force "$env:USERPROFILE\.gitlink-cli"
Remove-Item -Recurse -Force "$env:USERPROFILE\.gitlink"
```

---

### 三、npm 安装

#### 方式1: npm 卸载（推荐）

```bash
# 标准卸载（保留配置）
npm uninstall -g @gitlink-ai/cli

# 完全删除（包括配置）
npm uninstall -g @gitlink-ai/cli --purge
```

#### 方式2: 使用卸载命令

```bash
# 保留配置
gitlink-cli-uninstall

# 完全删除
gitlink-cli-uninstall --purge
```

#### 方式3: 手动删除

```bash
# 卸载npm包
npm uninstall -g @gitlink-ai/cli

# 删除Skills
rm -rf ~/.gitlink/skills

# 删除配置（可选）
rm -rf ~/.gitlink-cli
rm -rf ~/.gitlink
```

---

## 🔧 卸载选项说明

### `--purge` 参数

完全删除所有文件，包括：
- ✅ 二进制文件
- ✅ Skills目录
- ✅ 配置文件
- ✅ 用户数据
- ✅ 缓存文件

### `--yes` / `-y` 参数

自动确认所有操作，不询问用户。

### 交互模式（默认）

卸载过程中会询问：
1. 是否删除配置文件和数据
2. npm安装时是否卸载npm包
3. 确认卸载操作

---

## 📂 卸载内容清单

### 始终删除
- ✅ 二进制文件 (`gitlink-cli` 或 `gitlink-cli.exe`)
- ✅ Skills目录 (`~/.gitlink/skills/`)

### 条件删除（需要确认或 `--purge`）
- 🔸 配置目录 (`~/.gitlink-cli/`)
- 🔸 数据目录 (`~/.gitlink/`)
- 🔸 配置文件 (`~/.config/gitlink-cli/`)
- 🔸 npm全局包 (`@gitlink-ai/cli`)

### 保留文件
- 📌 用户的项目文件
- 📌 Git仓库
- 📌 系统环境变量（需手动清理）

---

## 🧹 清理剩余文件

### Linux/macOS

```bash
# 检查剩余文件
find ~ -name "*gitlink*" -type f 2>/dev/null
find ~ -name "*gitlink*" -type d 2>/dev/null

# 清理环境变量（如果手动添加过）
# 编辑 ~/.bashrc, ~/.zshrc 等，删除相关行
```

### Windows

```powershell
# 检查剩余文件
Get-ChildItem -Path $env:USERPROFILE -Recurse -Filter "*gitlink*" -ErrorAction SilentlyContinue

# 清理PATH环境变量
# 1. 打开"系统属性" > "环境变量"
# 2. 在"用户变量"或"系统变量"的Path中删除gitlink-cli路径
```

---

## ❓ 常见问题

### Q1: 卸载后命令仍然可用？

**A**: 可能是PATH缓存问题，解决方法：

**Linux/macOS**:
```bash
# 刷新shell
hash -r gitlink-cli

# 或重启终端
```

**Windows**:
```powershell
# 重启PowerShell或CMD
```

### Q2: 提示权限不足？

**A**: 使用管理员权限或删除到用户目录：

**Linux/macOS**:
```bash
# 使用sudo
sudo bash uninstall.sh

# 或安装到用户目录
INSTALL_DIR=$HOME/.local/bin bash uninstall.sh
```

**Windows**:
```powershell
# 以管理员身份运行PowerShell
```

### Q3: 如何重新安装？

**A**: 重新运行安装脚本即可：

```bash
# Linux/macOS
curl -sSL https://www.gitlink.org.cn/Gitlink/gitlink-cli/raw/master/install.sh | bash

# Windows
powershell -NoProfile -ExecutionPolicy Bypass -File install.ps1

# npm
npm install -g @gitlink-ai/cli
```

### Q4: 配置文件会自动删除吗？

**A**: 不会，除非使用 `--purge` 参数或确认删除。这是为了保护用户数据。

### Q5: Skills会被删除吗？

**A**: 会的，Skills目录会被自动删除。如需保留，请手动备份：

```bash
# 备份Skills
cp -r ~/.gitlink/skills ~/gitlink-skills-backup
```

---

## 🔍 故障排除

### 卸载脚本找不到

```bash
# 确保在项目目录中
cd /path/to/gitlink-cli

# 检查脚本是否存在
ls -la uninstall.sh uninstall.ps1
```

### 删除失败

```bash
# 检查文件权限
ls -la /usr/local/bin/gitlink-cli

# 强制删除
sudo rm -f /usr/local/bin/gitlink-cli
```

### npm卸载后仍有残留

```bash
# 手动清理npm缓存
npm cache clean --force

# 检查全局安装位置
npm root -g
npm list -g --depth=0

# 手动删除残留
```

---

## 📞 获取帮助

如有任何问题，请：

1. 🐛 提交Issue: https://www.gitlink.org.cn/Gitlink/gitlink-cli/issues
2. 💬 查看文档: https://www.gitlink.org.cn/Gitlink/gitlink-cli
3. 📧 联系支持: support@gitlink.org.cn

---

## ✅ 卸载检查清单

完成卸载后，可以检查以下内容：

- [ ] 命令不可用（运行 `gitlink-cli --version` 应该报错）
- [ ] 二进制文件已删除
- [ ] Skills目录已删除
- [ ] 配置文件已删除（如需要）
- [ ] PATH环境变量已清理
- [ ] 没有残留进程（`ps aux | grep gitlink` 或任务管理器）

---

**最后更新**: 2026-06-04  
**适用版本**: gitlink-cli v0.2.0+