嗨玩手游网

Git管理工具SOURCETREE使用与团队协作方案

整理了一下Git管理工具SOURCETREE基础使用与团队协作方案,如果觉得有点用,点赞、关注、收藏、转发。

如果不是类似eclipse或者ide开发工具集成git使用方式,本地开发项目可采用git客户端管理工具sourcetree来对项目进行版本控制管理,sourcetree支持windows、mac os系统。

下载地址:https://wwwurcetreeapp/

当前版本:

当前电脑系统:windows10

Sourcetree版本:SourceTreeSetup-3.4.4

git版本: version 2.31.1dows.1

Sourcetree官网地址

Git安装

下载安装地址:https://git-scm/

当前版本:git version 2.31.1dows.1

默认安装就行,安装后配置全局的提交者身份,以辨别协同开发者身份,如果有gitee或github账号,尽可能与其账号信息一致(无太大要求)。

git config --global user "用户名<英文>"git config --global user "邮箱地址<英文>"

安装完成后,就可以使用命令进行添加暂存区、提交本地仓库以及推送到仓库等操作了,为了方便,我们使用sourcetree客户端工具来替代git命令操作。

Git一些概念:

工作区(working directory):即本地项目目录下新建、修改、写代码的区域暂存区(stage index):临时存储本地库(history):历史版本(对应sourcetree的history)远程仓库(remote directory):代码托管、开源代码

Git基本操作流程:

工作区开发--(提交)-->暂存区--(提交)-->本地库--(提交)-->远程仓库(代码托管、开源代码)

Sourcetree

2.1 . 安装

安装sourceTree前先把git安装上。

(1).可以注册Bitbucket账号或跳过,这里选择"跳过"

(2).选择安装git版本控制,但这里勾选,自动帮我们安装会请求外网速度比较慢,建议自己单独安装git,这里已单独安装git,点击下一步

(3).填写提交身份信息,以后git提交内容,会标注谁提交过来的

(4).配置SSH秘钥用以获取ssh方式获取项目,并进行免密提交项目等操作,这里选择否先安装完之后在添加,然后下一步

(5).安装完成

2.2 . 配置与使用

2.2.1.设置

启动git支持:工具->选项->如果没有启用git支持,点一下"启用Git支持"

说明:如果不启用是没法使用的版本控制管理的

(这是启用Git支持的效果)

2.2.2. 工具使用与团队协作方案

如果只是为了练习软件操作,还没有创建项目仓库,可以到gitee、github创建一个仓库使用,如果已有项目仓库,正在参与团队协作开发(拉取非自己创建的仓库源码到本地开发加入团队协作开发,需先申请加入该团队或项目管理员邀请加入),按照团队约定开始使用仓库就好。

以下演示是在已有项目仓库、团队协作的情况进行,且都是基于gitee代码托管平台的操作流程,github操作几乎一样。

(1). 项目管理员在gitee平台为新项目新建了仓库(默认是master分支),并以master为分支基础新建开发分支(dev-*命名),这里命名dev,然后推送基础代码到"开发分支",项目管理员将开发任务分配到各个团队成员,各个团队成员在dev开发分支上进行开发,建议master分支保护登记设置为"保护分支",只允许管理员进行提交发布以避免不必要的错误提交,当然,什么协作策略这个由团队商议决定

设置master为保护分支

新建开发分支dev

分支命名:

分支

命名

说明

主分支

master

主分支,创建仓库时自动默认,这是发布项目正式版的分支

开发分支

dev-*

日常开发分支,代码最全的分支

功能分支

feature-*

某个功能点增加开发,从开发分支中分出来的分支,开发完后,合并到“开发分支”中

预发布分支

release-*

从“开发分支”中分出来的分支,开发完成未合并到master主分支前的分支,即测试阶段的分支,用于项目测试,测试完成合并到“开发分支”和“master主分支”上

Bug分支

bug-* 或 hotfix-*

项目发布后运行中出现bug,修不完再合并到“开发分支”和“master主分支”上

(2). 团队成员注册自己的gitee账号,项目管理员发送邀请加入链接给团队成员,团队成员同意加入

(3). 用免密登录(代码拉取、推送等免密操作)操作,需按照官方引导,在本地生成公钥,并在gitee平台上配置自己的公钥,以此建立本地与仓库平台之间的通信

如果采用gitee、github作为项目仓库,ssh公钥配置如下:

gitee配置ssh公钥的步骤:/d/file/gt/2023-09/qhdne4wvupy.html 本地生成公钥命令:ssh-keygen -t rsa -C "提交者邮箱"

② 按照提示完成三次回车,即可生成 ssh key。通过查看 ~/.ssh/id_rsa 文件内容,获取到你的 public key ,查看公钥执行命令: cat ~/.ssh/id_rsa

③ 将公钥赋值到设置->ssh->SSH公钥位置

④ 添加后,在终端(Terminal)中输入 ssh -T (自己设置的邮箱)

说明:首次使用需要确认并添加主机到本机SSH可信列表。若返回 Hi XXX! You've successfully authenticated, but Gitee does not provide shell access. 内容,则证明添加成功。

完成公钥配置后,在sourcetree软件中配置SSH客户端公钥信息,步骤:工具->一般->SSH客户端配置,如下:

(4). 获取仓库地址,访问仓库项目地址,复制dev开发分支的ssh地址备用,这里采用ssh克隆方式拉取项目到本地

(5). 拉取项目到本地仓库,点击clone,填写复制的ssh项目地址,选择本地项目开发目录,项目名称与仓库地址的项目名一致,点"克隆"就可以把项目拉取下来了

说明:如果本地已存在git初始化的项目,那么点击"add"进行添加就行了

说明:这里的dev分支是本地仓库的分支,删除整个项目目录不会影响远程仓库,但是如果删除分支里的某个文件提交并推送到远程仓库,这就是删除远程文件的操作

dev开发分支:文件状态、History说明

(6). 进入开发阶段,各个团队成员在dev分支下开发,为了避免开发错误影响dev开发分支主线,也可在dev开分支拉取到本地后,以dev开发分支为基础新建自己的功能分支,功能分支以future-*命名,比如留言板:future-message,待功能开发完成并测试后(或按照周期比如每日提交一次的工作量),将future-message分支合并到本地的dev开发分支上并推送到远程仓库。

说明:如果小项目,就在dev分支下进行开发就好。

(7). 开发完成后,项目管理员将项目部署到服务器进行测试,最终部署到正式服务器

案例:分配到开发留言板功能任务

假设新建"guestbook.txt"文件完成提交、推送就是留言板的开发任务

工作流程:

(每日或周期性)拉取dev分支代码,以确保远程仓库与本地同步基本工作流程:工作区开发(写代码)->添加变化的内容到暂存区->把暂存区内容提交本地仓库,这个步骤是必要的且频繁的,以产生自己的本地库存版本库,以便可以吃后悔药,可以回退等操作。(每日或周期性)推送代码,以展示开发成果,推送前先拉取代码确保与远程仓库代码同步,有冲突先解决冲突,再提交并推送

操作步骤:

① . dev开发分支状态下,新建guestbook.txt文件

② . sourcetree上查看文件状态,查看是否文件未添加到暂存区或者未提交到本地仓库

有未添加到暂存区的文件guestbook.txt,把它添加到暂存区

将暂存区的文件提交到本地仓库

③ . 推送新内容到远程仓库的dev分支上,推送前先拉取一下,确保远程仓库与本地文件同步

拉取同步

推送新内容到远程仓库

④ . 完成开发任务,可在远程仓库查看提交内容

2.2.3. 删除、撤销删除、冲突场景

2.2.3.1 . 删除场景

案例:删除guestbook.txt文件

操作步骤:

①. 根目录下删除guestbook.txt文件

②. 添加暂存区

③. 提交本地仓库

④. 推送到远程仓库

删除文件,添加到暂存区

提交本地仓库

推送到远程仓库

(文件已被删除)

2.2.3.2 . 撤销删除场景

案例:撤销已删除的guestbook.txt文件

操作步骤:

①. History历史版本中,选择要恢复到的版本

②. 右击->重置当前分支到此次提交

③. 选择使用模式"强行合并"模式,将根目录下内容恢复到这个版本的内容

④. 完成删除撤销

⑤. 推送到远程仓库

注意:撤销后,本地版本与远程仓库不一致了,软件提示我们需要拉取新内容,但是拉取操作将会把我们本地仓库恢复到删除状态,这不是我们需要的,所以在确保其他团队成员已无代码推送的情况下,我们采用"强行推送"到远程仓库,并告知其他成员拉取新版

选择要恢复到的版本

重置到当前分支到此次提交

使用"强行合并"模式撤回删除

强行推送恢复后的内容到远程仓库

完成撤回删除操作

使用模式知识点:

--soft(软合并):仅仅在本地仓库中移动一下指针,不会影响工作区(working)和暂存区(index),就是说当前根目录下以及暂存区的文件不会改变,只是历史版本回退到当前选择的版本,可以重新把暂存区内容提交到本地仓库

--mixed(混合合并):会在本地仓库移动指针,同时重置暂存区(index),但是不会影响本地工作区(working),就是说当前根目录下项目文件不会改变,历史版本、暂存区文件会会回退到当前选择的版本,工作区的代码可以重新进行添加暂存区、提交本地仓库操作

--hard(强行合并):在本地仓库移动HEAD指针,重置暂存区、工作区,就是说当前根目录下、暂存区、历史版本的所有文件都会回退到当前选择的版本,当前版本之后的新版本都被重置掉,这个操作风险有点高,需慎重操作

说明:很显然,我们的文件已经被删除并提交了,根目录下已经没有了,我们需要采用"强行合并"模式恢复回来

2.2.3.3 . 冲突场景

本地新建新项目目录,使用同一个dev分支,测试冲突场景。

操作步骤:

①. 新建新项目目录teamtest_dev1,使用同一个dev分支

新建新目录,采用同一dev分支

②. 修改teamtest_dev目录的guestbook.txt,第一行加点内容,修改后提交到本地仓库并推送到远程地址

③. 修改teamtest_dev1目录的guestbook.txt,也是第一行加点内容,修改后提交到本地仓库并推送到远程地址,提交时将提示我们不允许我们提交,我们进行拉取操作将提示我们内容冲突,此时,我们需要解决冲突

(出现冲突场景)

④. 打开teamtest_dev1目录下的guestbook.txt文件修改到合适的内容

⑤. 修改内容后,提交teamtest_dev1目录的guestbook.txt到本地仓库并推送到远程仓库

⑥. 冲突解决完成,远程仓库guestbook.txt文件内容已发生改变

更多攻略
游戏推荐
更多+