阅读(2551) | 喜爱(0) |
# 介绍
SmartGit是一个简单易用、对用户友好的图形化git客户端。
它可以帮助你在不了解git命令格式的情况下快速地进行git操作。
Windows界面

MacOS界面

你可以前往官网下载客户端:https://www.syntevo.com/smartgit/
安装步骤比较简单,这里不再说明。
我已将软件上传至共享资料库,位置是:
```
smb://smb.konkawise.com/共享资料库/90.工具软件/01.开发软件/00.通用/Git
```
> **特别注意**
在安装的时候,要选择非商用!

## SmartGit基本视图

### 工具栏
SmartGit顶部的工具栏放置了一些常用的命令。这里不做介绍,仅对“Stage”进行说明。
熟悉git命令的朋友应该知道要加入git的暂存区(Stage)是通过命令 `git add` 来操作的。而smartgit则是通过这个按钮来操作。
我们可以在文件区中,选择单个或多个要添加到暂存区的文件,然后点击这个按钮,即可将选中的文件全部添加进暂存区。
### 仓库区
仓库区会列出所有的git、svn等仓库。你可以通过双击他们来切换到不同仓库。

### 分支和远程
左下角是远程和分支的窗口。你可以看到本地的分支情况。箭头指向的分支为当前分支(也会加粗),其他的为本地其他分支。

---
在上面的图片中,还有两个远程:`origin` 和 `git.konkawise`。
你可以右键选择“Properties...”来更改远程仓库的路径。(这个是gitlab中修改了远程仓库地址时需要用到)
你也可以删除或者重命名这个远程。如果这个远程有多个分支,但你在这里没有看到,还可以点击“Fetch More...”来从远程获取最新的分支情况。

### Output窗口
我们所做的每一个操作,都会在这里输出。
在安装完SmartGit后,默认是不会出现的,需要我们自己打开:Window -> Output

### 文件区
我们如果修改了文件(删除、修改、添加)都会在这里列出来。
我们可以选择需要的文件Stage(即git add)

# 生成SSH key
关于如何生成SSH Key并导入gitlab,请阅读这篇文章:
[【git教程系列】SSH key与GPG key](https://www.onelib.biz/blog/a/5b3389e5eb3e9305d8ed49d5)
# 基本操作
## clone仓库
在SmartGit左上角单击“Repository”,选择“Clone...”

---
在对话框中输入仓库地址。

这个地址在gitlab的项目首页可以看到:

输入后点击“Next”
---
你可以选择要下载的分支,默认是master分支:

---
设置本地仓库存放的位置:

---
可以在Output窗口查看clone的进度:

## 提交代码
git中,提交代码首先要将修改的文件添加到暂存区。git的命令是 `git add`,在SmartGit中,则需要点击Stage按钮。
SmartGit提交代码的流程是:
1. 先在文件区中选择要提交的代码
2. 才点击按钮将文件加入暂存区
3. 点击按钮,填写log后提交
下图演示了如何将一个仓库中的三个文件加入暂存区,最终提交的过程:

## 设置追踪分支
在分支与远程窗口中,你可以选中一个分支,右键单击来选择更多操作。
“Set Tracked Branch...”来设置追踪的分支。
所谓追踪分支,就是对比你当前的分支和另一个分支(一般会设置为远程的分支),如果你本地的分支修改了,而远程分支没有,则会给出提示。

## 设置多个远程
选择要添加远程的仓库,在工具栏中选择:Remote -> Add

---
在对话框中输入远程仓库地址,并填写名称(名称随意,自己能认出来就行):

# 把svn仓库迁移到git仓库
## clone
第一步,仍是clone,只是这次在地址输入栏中输入svn仓库的地址:

不同于git仓库,svn仓库会询问我们选择类型;这里选择“SVN”:

## 输入密码
如果第一次访问svn服务器,会要求我们输入用户名和密码,输入你的用户密码即可。
## 设置本地存储位置
这里是设置你要将这个git仓库放在自己电脑的路径:

## 转换过程
Output窗口会显示正在clone的提示:

---
当出现下图这个提示信息后,说明最近的一次更新已经迁移到svn仓库了。

---
这个时候,你可以进行git操作,但仍需等待后台把所有的svn版本转换为git。底部信息栏会显示进度:

---
当出现这个提示后,说明后台已经把所有的svn版本都转换为了git版本(要点击下面的“Finish Clone”按钮)。

---
这个时候后台会自动开始合并,你仍需等待一段时间。

---
当Output窗口显示所有都合并时,就说明svn仓库已经完全转为git仓库了。

## 远程仓库
在完成clone svn仓库后,会发现git仓库的远程列表中自动添加了一个:

这意味着我们仍然可以推送更新到这个svn仓库,仍可以从这个svn仓库拉取最新代码!当然,既然我们已经转为git仓库了,就不要再在svn仓库里操作了。
## 将代码导入远程git仓库
到这一步,我们已经完成了将svn仓库转为git仓库,已经可以进行开发了。但在协同开发中,还需要将这个代码推送到远程仓库。
下面我以一个空的远程仓库为例,演示如何将从svn转换而来的git仓库推送到远程git仓库。
### 在gitlab中创建新项目
在gitlab中创建一个新项目:

### 在SmartGit中添加一个远程
添加远程的方式上面“设置多个远程”一节一节说明了:

### 推送到远程git仓库
在分支和远程窗口中,选择 `SVN`(注意不是选择刚刚添加 `origin` 远程!)。然后右键单击,选择“Push To”。

在对话框中,可以看到,这里出现的是我们刚刚添加的名为 `origin` 的远程。

# SmartGit的一些标记及含义
待后续补充资料
linxiaozhou.com