概述

  • Gitea 的进阶使用
    本部分介绍了Gitea服务器的进阶配置方法,包括使用离线模式,提高上传附件限制。
  • Gitea服务的进阶配置
    本部分介绍了Gitea的进阶使用方法,包括使用工单系统,建立组织,在组织中建立权限不同的团队等。
  • SmartGit的使用说明
    可能,现在你已经有了数十个仓库需要进行管理,再使用TortoiseGit你会觉得非常不方便,特别是在不同项目之间的切换。
    那么你现在需要使用一个’进阶‘的Git GUI软件了—- SmartGit。本部分将详细介绍SmartGIT的使用方法!你将发现你会进入一个不一样的世界。

Gitea 的进阶使用

Gitea除了简单的做仓库的管理,还能更为方便的进行团队协作开发,这里将主要介绍

组织

一个组织是协作开发的开始,通过组织可以建立分组控制权限,同时也能对项目进行更好的分组。

创建组织

  1. 打开Gitea,登录你的账号,然后按如下设置进行操作。
    高手进阶 - 图1
  2. 填写组织名称
    高手进阶 - 图2
  3. 建立完成
    高手进阶 - 图3

    为组织创建仓库

  4. 点击访问xx
    高手进阶 - 图4

  5. 然后点击 创建新的仓库
    image.png
  6. 填写信息创建仓库,确保为私有库才能控制权限
    高手进阶 - 图6
  7. 仓库建立完成
    高手进阶 - 图7

创建团队

  1. 点击 创建新的团队
    image.png
  2. 填写团队信息,控制为只能写代码。
    image.png
  3. 创建完成
    image.png

设置团队人员和仓库

  1. 为团队Coder添加成员。
    高手进阶 - 图11
    高手进阶 - 图12
    高手进阶 - 图13
    image.png
  2. 为团队Coder增加可查看仓库仓库
    image.png
    高手进阶 - 图16
    image.png
    image.png
  3. 登陆Owner
    高手进阶 - 图19image.png

  4. 登陆Coder
    image.png
    高手进阶 - 图22

    展示

一般可以将团队分为三个 OwnerCoderReader。(coder还可以细分为针对不同项目的)。

image.png

工单

工单系统可以很好的进行开发任务管理。
image.png

建立一个工单

  1. 打开一个项目选择工单页面。

  2. 填写工单信息。
    高手进阶 - 图25

分配任务

工单右侧可以选择工单执行者
高手进阶 - 图26

完成工单

高手进阶 - 图27

Gitea服务的进阶配置

之前通过网页进行安装只是对Gitea服务端进行了简单的配置,
Gitea服务器本身还有不少进阶的配置可以设置。
自定义内容包括:配置文件、自定义ignore文件、自定义网页模板等内容!

定制自己的配置文件

要配置服务器首先需要找到服务器的配置文件,文件路径如下D:\Gitea\custom\conf\app.ini(如果你使用了我之前设置的Gitea路径,用其他路径的我相信你能找到^-^)
修改时需找到对应的键值对进行修改。

该文件的默认情况请查看app.sample.ini,本文中没有提及的设置方式可以自行根据默认文件和需求情况自行修改。

配置使用离线模式(能够显示随机生成的图像!)

找到server中的OFFLINE_MODE设置为true如下:

  1. [server]
  2. OFFLINE_MODE = true

解除上传附件限制

设置不限制上传的文件类型和文件大小为2GB。

附件可以上传到工单或者进行相关的版本发布!

[attachment]
; 是否允许上传附件. 默认是`true`
ENABLED = true
; 附件保存的路径. 默认是`data/attachments`
PATH = data/attachments/:USER
; 允许上传的文件类型 
ALLOWED_TYPES = *.*
; 文件的最大大小. 默认是4MB
MAX_SIZE = 2048
; 每次上传文件的最大个数. 默认是5
MAX_FILES = 10

SmartGit的使用说明

使用了繁琐的小乌龟工具,相信你对Git的使用已经比较熟悉了。现在将介绍一个更为好用的Git GUI软件。它可以将Git管理在一个工作区内并通过更少的鼠标点击进行仓库的提交和推送。下面进入简单讲解

安装SmartGit

  1. 找到SmartGit安装包
    高手进阶 - 图28
  2. 使用默认配置安装SmartGit
  3. 检查右键SmartGit安装成功
    高手进阶 - 图29

第一次启动SmartGit

  1. 启动SmartGit,出现如下界面根据自身情况选择:
    • 30天试用(若是企业使用请选择这个或者购买激活码)
    • 输入激活码
    • 非商业使用(若是个人使用请选择这个)
      高手进阶 - 图30
  2. 在如下界面需要配置提交的作者和邮箱,若电脑为多人使用请不要配置直接选择NEXT
    (若要配置需要将邮箱和作者与Gitea中注册账号一致,这样可以让Gitea找到对应用户和头像)
    高手进阶 - 图31
  3. 其他都使用默认即可。
  4. 开启软件之后可能由于离线模式出现如下情况,选择Cancelskip即可。
    高手进阶 - 图32
  5. 开启之后软件会自动检索系统中存在的仓库,并添加到软件中。
    image.png

至此SmartGit的初步启动完成

使用之前的准备工作

  • 再次确认你的电脑是多人使用还是单人使用。
    若为多人使用请点击RepositoryEdit Git ConfigUser
    在打开的界面中清除所有的内容!!!保留文件为空
    image.png

上手使用SmartGit

建立一个git仓库

  1. 在Gitea中建立一个版本库。(参看Git协作之旅->服务端新建版本库
  2. 在本地创建一个Git仓库。这里演示的本地仓库是通过VS建立的C++工程。
    image.png
    高手进阶 - 图36
  3. 使用pull拉取仓库。这时会提醒你添加远端地址(remote),请拷贝Gitea中的地址吧!
    image.png
    高手进阶 - 图38
  4. 这时会让你输入密码,你可以选择将密码保留在软件中
    高手进阶 - 图39
  5. 远端地址填写完成后再正式拉取(其实还是没有完成,只是将远端数据拉到的.git文件夹中)。
    高手进阶 - 图40
  6. 下面在分支区中可以看到master分支。并且有1> <1。请设置master分支追踪,
    设置之后Local分支之后应该有origin
    高手进阶 - 图41
    image.png
  7. 最后执行pull,注意这里选择rebase。(之后的pull还是建议使用merge这样可以看到好看的分支图哦1(^-^)1 )
    image.png
  8. 这时我们的仓库完成初始化,我们可以提交我们的修改了!但是点击Commit它提醒我们需要设置邮箱!我们现在就去设置一下吧。
    高手进阶 - 图44
    image.png
    高手进阶 - 图46
  9. 插曲过后继续对项目进行提交,Ctrl+A选中所有文件,然后点击Commit。填写日志信息后完成提交并推送。
    image.png
    image.png

  10. 在网站上检查一下成果吧~
    image.png

拉取服务器仓库

这里我们拉取上一步中建立的仓库,使用默认配置拉去即可,最后注意仓库放置的位置(在拉取时遇到问题可以参看上面的步骤)
image.png
image.png
高手进阶 - 图52

两人协作时遇到的问题

下面我将在上面提到的两个仓库中进行修改了提交,来模拟两个人操作时的情况。

  • 两个人修改同一个文件产生冲突(GIT有能够区分同一个文件的不同函数的修改,但是可能经常不好用,这里我们需要解决冲突)
    1. 未修改前main函数:
      // test.cpp: 定义控制台应用程序的入口点。
      //
      #include "stdafx.h"
      int main()
      {
      return 0;
      }
      
  1. 人员1 修改并提交
    人员1先修改并将修改进行提交和推送。 ```c // test.cpp: 定义控制台应用程序的入口点。 //

    include “stdafx.h”

// // 程序主入口 // int main() { return 0; }

<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/975505/1648259836265-02d6c8ce-024c-45fd-9546-d9b6115d2412.png#clientId=u7b57feb6-09c2-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=543&id=ud6d70c24&name=image.png&originHeight=543&originWidth=616&originalType=binary&ratio=1&rotation=0&showTitle=false&size=17449&status=done&style=none&taskId=u8f466c19-d05e-471d-84c6-a13bc48edbc&title=&width=616)

   3.  **人员2 修改并提交**:<br />人员2与人员1同时修改文件,并提交但是没有做推送。现在人员1推送完了,人员2再进行推送时会提示无法推送<br />需要先进行拉取,并解决冲突,然后再推送。 
```cpp
// test.cpp: 定义控制台应用程序的入口点。
//
#include "stdafx.h"
int main()
{
    printf("Hello,Git!\r\n");
    return 0;
}

image.png

image.png
image.png
高手进阶 - 图56
image.png
image.png
这里或许需要先commit,再手动点击push,不能使用Commit&Push
高手进阶 - 图59

  1. 最后结果:
    可以看到文件被完美的合并了,同时两个的提交记录也交织在一起。
    image.png
    image.png
    高手进阶 - 图62
    • 两个人修改不同文件(这里GIT会自动合并)
      这里通过图片简略说明一下
      人员1
      继续上一个步骤,他还没有拉取人员2的推送。他这时修改了另一个文件,想要提交推送。这时会提示无法推送。
      需要先拉取一下文件,拉取后的结果如下,自动创建好了一个合并提交,之后只需进行push即可。
      高手进阶 - 图63
      image.png
      高手进阶 - 图65

界面详细解析

  • 常用主界面解析

高手进阶 - 图66

  • 常用子菜单解析

image.png

image.png

  • 文件状态说明
    image.png
    高手进阶 - 图70