[toc]

SmartGit 操作指南(Linux)

本文以 SmartGit 为例介绍 Git 版本管理图形化操作的方法。(Linux版)(个人学习研究版)

准备工作

安装包存放地址:\10.1.135.8\导远内网文件服务器\光电产品\B1(R外网到内网)\99-其他\MHH\Smartgit

软件安装

  1. 直接打开 .deb包安装

  2. 进入SmartGit

../../_images/open.png

  1. 接受,选择试用三十天

../../_images/license.png

  1. (自动获取git),设置用户信息

../../_images/user_inf.png

  1. 选择密钥设置。采用本地系统密钥或是客户端密钥(简单些),后续可更换

../../_images/SSH_smart.png

  1. 提交显示的风格,随自己喜好

  2. 设置隐私,全叉掉!!

../../_images/privacy.png

  1. 会弹出连接,检查更新。直接cancel然后skip就行。之后就进入了

../../_images/connection.png

  1. 关掉客户端,~~进行破解~~ (学习研究)。

  2. 进入~/.config/smartgit目录下,将安装包中的 crackSmartGit-master文件夹 以及 crackSmartGit.jar 放入其中

  3. 打开smartgit.vmoptions文件,在其中添加“-javaagent:/home/uisrc/.config/smartgit/crackSmartGit.jar=19.1.3(其中uisrc根据自己用户名自行修改)

  4. 最后打开客户端,在菜单->帮助->注册产品 ,选择这个目录下crackSmartGit-master文件夹中的的license.txt文件即可(先解压license.zip)。最后成功效果如下图,没有到期时间的显示

../../_images/smartgit_suc.png

Git 账户

在客户端左上方菜单栏->repository->Edit Git Config

初始化

导入本地已有仓库

在客户端左上方菜单栏->repository->Add or Create。选择本地已有仓库即可

克隆远程仓库

两种方式,如下

  1. SSH协议关联远程仓库

  • 在客户端左上方菜单栏->repository->clone”

  • 输入远程仓库的SSH地址(注意前提是远程仓库已添加本地电脑的密钥),点击next

  • 弹出SSH authentication,会自动读取本地私钥文件,输入密码即可

../../_images/SSH_authentication.png

  • 之后会弹出Master Password,用于保护向服务器进行身份验证的密码,也设置。之后确认SSH服务器验证。

../../_images/Master_Password.png

  • 最后设置存储地址即可。

  1. HTTP协议直接输入账户密码关联远程仓库

  • 类似SSH克隆

  • 输入远程仓库的HTTP地址,弹出login,输入远程仓库的账户密码,最后设置存储地址即可。

../../_images/http_login.png

初始化本地仓库

  1. 在客户端左上方菜单栏->repository->Add or Create。选择存储的地方,再确认创建即可

../../_images/smart_create.png

  1. 将其连接到远程仓库进行管理:获取远程仓库的URL,在客户端左上方菜单栏->Remote->Add… 添加即可

  2. 注意!!!本地默认的分支是master,可在左上角pull符号旁的小箭头点击选择fetch远端后,在左下角选择远端的main分支,右击选择checkout

../../_images/main_checkout.png

  • 当我在本地新增一个文件,提交后将其push到远端**(注意push的分支是哪个)**

提交

跟踪文件

  1. 跟踪:在用SmartGit进行项目跟踪时,它是以文件夹形式跟踪文件夹下所有的文件。自动进行。

  • 在右边查看其信息。

../../_images/douc_sta.png

  1. 忽略跟踪:右击选中文件,选中ignore即可。

填写提交信息

  1. 右侧文件查看栏,选中文件右击stage暂存。

  2. 填写,提交

  • 直接在上面commit栏填写。

  • 也可以右击文件选中commit。

../../_images/commit_douc_t.png

推送提交

  1. 左上方的push进行推送。

  2. 也可以在提交时选择commit and push

提交约束

  • 参考./Commit.md文件

分支管理

创建本地新分支

  • 在客户端左上方菜单栏->branch->Add branch

拉取远程分支并创建本地分支

  • 在左上角pull符号旁的小箭头点击选择fetch远端后,在左下方选择远端中想要分支,右击选择checkout即可

切换分支

  • 在左下方双击选中想要切换的分支即可

删除分支

  • 在左下方选择想要删除的分支,右击选择Delete即可

推送

将本地开发分支推送到远程仓库

  • 切换到对应分支,点击左上角的push。或者在左下角选中分支,右击选中push。

合并

拉取远程仓库主分支到本地

  • 在左上角pull符号旁的小箭头点击选择fetch远端后,在左下方选择想要拉取的远端分支,右击选择checkout即可

将远程分支合并到本地分支

  • fetch远端后,在左下方选择想要合并的远端分支,右击选择merge即可。或者点击右上角的merge图标

将开发分支移动到主分支

  • 切换到主分支(为方便查看,可将左下角的本地分支都勾选,从而显示),选中想要将其合并进来的分支,右击选择merge或右上角的merge即可

../../_images/want_merge.png

../../_images/merge_success.png

冲突解决

情况:当我main分支和develop分支都存在conflict.md且内容冲突。将其合并引起合并冲突。

../../_images/now_conf.png

三种方式

1.使用冲突解决工具”conflict solver

../../_images/conflict_tool.png

  1. 直接打开冲突文件手动解决冲突  - 根据项目需求删除,保留,修改代码就行了。(注意,在项目最后这些符号: <<<<<<<HEAD======= >>>>>>>(一长串) 都不能存在,否则报错)  - 最后选中冲突文件,再选择左上角菜单栏中的操作->解决冲突,将冲突文件标记为已解决即可。

  2. 使用”我的”或者”他人的版本解决”,即take ours和take theirs。

我这选择的是冲突解决工具,在其中删除那些符号,将其两者保留。commit然后push到仓库后验证如下图

../../_images/final.png