『转载』Git管理工具sourcetree安装与使用

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

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

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

下载地址:
https://www.sourcetreeapp.com/

当前版本:

当前电脑系统:windows10

Sourcetree版本:SourceTreeSetup-3.4.4

git版本: version 2.31.1.windows.1

『转载』Git管理工具sourcetree安装与使用

Sourcetree官网地址

1. Git安装

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

当前版本:git version 2.31.1.windows.1

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

命令行执行:

git config --global user.name "用户名<英文>"

git config --global user.email "邮箱地址<英文>"

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

Git一些概念:

  1. 工作区(working directory):即本地项目目录下新建、修改、写代码的区域

  2. 暂存区(stage index):临时存储

  3. 本地库(history):历史版本(对应sourcetree的history)

  4. 远程仓库(remote directory):代码托管、开源代码

Git基本操作流程:

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

2. Sourcetree

2.1 . 安装

安装sourceTree前先把git安装上。

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

『转载』Git管理工具sourcetree安装与使用

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

『转载』Git管理工具sourcetree安装与使用

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

『转载』Git管理工具sourcetree安装与使用

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

『转载』Git管理工具sourcetree安装与使用

(5).安装完成

『转载』Git管理工具sourcetree安装与使用

2.2 . 配置与使用

2.2.1.设置

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

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

『转载』Git管理工具sourcetree安装与使用

『转载』Git管理工具sourcetree安装与使用

这是启用Git支持的效果

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

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

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

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

『转载』Git管理工具sourcetree安装与使用

设置master为保护分支

『转载』Git管理工具sourcetree安装与使用

新建开发分支dev

分支命名规范:

『转载』Git管理工具sourcetree安装与使用

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

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

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

gitee配置ssh公钥的步骤:
https://gitee.com/help/articles/4181

Github配置ssh公钥的步骤:
https://docs.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

以下是gitee公钥生成与配置步骤:

① 本地生成公钥命令:ssh-keygen -t rsa -C "提交者邮箱"

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

『转载』Git管理工具sourcetree安装与使用

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

『转载』Git管理工具sourcetree安装与使用

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

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

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

『转载』Git管理工具sourcetree安装与使用

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

『转载』Git管理工具sourcetree安装与使用

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

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

『转载』Git管理工具sourcetree安装与使用

『转载』Git管理工具sourcetree安装与使用

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

『转载』Git管理工具sourcetree安装与使用

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

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

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

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

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

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

工作流程:

  • (每日或周期性)拉取dev分支代码,以确保远程仓库与本地同步

  • 基本工作流程:工作区开发(写代码)->添加变化的内容到暂存区->把暂存区内容提交本地仓库,这个步骤是必要的且频繁的,以产生自己的本地库存版本库,以便可以吃后悔药,可以回退等操作。

  • (每日或周期性)推送代码,以展示开发成果,推送前先拉取代码确保与远程仓库代码同步,有冲突先解决冲突,再提交并推送

操作步骤:

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

『转载』Git管理工具sourcetree安装与使用

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

『转载』Git管理工具sourcetree安装与使用

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

『转载』Git管理工具sourcetree安装与使用

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

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

『转载』Git管理工具sourcetree安装与使用

『转载』Git管理工具sourcetree安装与使用

拉取同步

『转载』Git管理工具sourcetree安装与使用

『转载』Git管理工具sourcetree安装与使用

推送新内容到远程仓库

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

『转载』Git管理工具sourcetree安装与使用

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

2.2.3.1 . 删除场景

案例:删除guestbook.txt文件

操作步骤:

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

②. 添加暂存区

③. 提交本地仓库

④. 推送到远程仓库

『转载』Git管理工具sourcetree安装与使用

删除文件,添加到暂存区

『转载』Git管理工具sourcetree安装与使用

提交本地仓库

『转载』Git管理工具sourcetree安装与使用

推送到远程仓库

『转载』Git管理工具sourcetree安装与使用

文件已被删除

2.2.3.2 . 撤销删除场景

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

操作步骤:

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

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

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

④. 完成删除撤销

⑤. 推送到远程仓库

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

『转载』Git管理工具sourcetree安装与使用

选择要恢复到的版本

『转载』Git管理工具sourcetree安装与使用

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

『转载』Git管理工具sourcetree安装与使用

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

『转载』Git管理工具sourcetree安装与使用

『转载』Git管理工具sourcetree安装与使用

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

『转载』Git管理工具sourcetree安装与使用

完成撤回删除操作

使用模式知识点:

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

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

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

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

2.2.3.3 . 冲突场景

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

操作步骤:

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

『转载』Git管理工具sourcetree安装与使用

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

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

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

『转载』Git管理工具sourcetree安装与使用

『转载』Git管理工具sourcetree安装与使用

出现冲突场景

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

『转载』Git管理工具sourcetree安装与使用

『转载』Git管理工具sourcetree安装与使用

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

『转载』Git管理工具sourcetree安装与使用

『转载』Git管理工具sourcetree安装与使用

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

『转载』Git管理工具sourcetree安装与使用

本文转自 https://www.bilibili.com/read/cv11127739,如有侵权,请联系删除。

上一篇:SourceTree版本回溯以及单个改动版本回溯


下一篇:解决在Mac上sourcetree反复要求输入密码的问题