Souretree操作
1.创建本地仓库
- 点击菜单栏
Create
- 点击浏览选择文件夹位置
- 设置本地仓库名字
- 点击创建
2.创建文件
-
在文件夹下创建文件
fruit.txt
-
观察文件状态里
fruit.txt
已经在未暂存文件里 -
点击右侧
+
号将文件保存到暂存区(add) -
在备注框内输入备注消息进行提交(commit)
-
点开历史记录(history),查看记录
3.修改文件(add .,commit)
-
在
fruit.txt
文件中添加orange``patato
两项记录并保存,回到sourcetree此时,菜单栏上已经小标提示有一条需要提交的文件信息,文件状态里显示当前
fruit.txt
为未暂存文件,在History
中也可以看到图谱中出现一新的节点未提交的更改
。 -
点击右侧
+
号放入暂存区,输入备注信息后提交 -
此时
- 菜单栏的提交信息消失
- 点击
History
已经能看到右侧master
分支最新节点上已经有了保存的更改记录 - 下方4号位置显示了当前HEAD指向节点的哈希值、父节点、作者、节点日期、提交者、节点的备注信息和该节点的文件
- 右侧号位置记录了该节点的文件操作,
+
号代表添加的信息,-
号表示删除的信息
-
按照以上步骤依次添加
cherry
和grape
,添加完后结果如下
4.创建分支(branch)
-
点击当前HEAD节点,右键点击分支
-
给新分支命名
dev1
,点击创建分支如图产生了分支
dev1
-
在分支上进行修改操作
-
分支辨别
左侧分支里可以看当前仓库所有的分支,和当前HEAD指向的分支,同样,右侧图谱内白点所标记的分支即为当前所在分支
-
在分支上按上文介绍的顺序为
fruit.txt
文件添加lemon
,提交后如下可以看到分支
dev1
分支延伸出了新的节点,做了一次更新
-
5.合并分支(merge,rebase)
-
切换到主干
master
上,并进行一次不一样的修改,为fruit.txt
文件添加mango
-
分支切换的两种方式
-鼠标移动到分支名上右键点击检出(checkout)
-鼠标移动到左侧分支中的分支名上双击鼠标左键,或者移动到右侧图谱树中的分支名上双击鼠标左键
切换成功:
-
在
master
主干上为fruit.txt
文件添加mango
-
-
合并分支
dev1
到主干master
上-
鼠标移动到分支
dev1
上鼠标右键点击合并 -
点击确定
-
-
解决冲突
由于主分支我们是往
fruit.txt
文件中添加的mango
,而分支dev1
中我们是往fruit.txt
文件中添加的lemon
,因此当合并两个不同的想法时,就会产生冲突。如图可以看到,提示产生了冲突,在文件状态中,有个未暂存文件需要我们处理出统一的版本才能提交,下方信息中显示
Conficts
冲突的文件为fruit.txt
,右侧4号位显示出了冲突的内容对比。未暂存的fruit.txt
文件中也有冲突对比:若想合并就只能定一个确定的版本,使两个思路最终结果相同。
-
解决方式
鼠标右键点击未暂存文件
fruit.txt
,在解决冲突
中可以看到许多种解决方式-
打开外部合并工具:打开自己在
soucetree
已经关联的外部代码对比软件,对比两种代码的异同,进行合并 - 使用 我的版本 解决冲突:使用当前主分支的版本为两者合并后的统一版本
- 使用 他人的版本 解决冲突:使用需要合并的目标分支的版本作为两者合并后的统一版本
-
手动解决冲突:直接打开未暂存文件
fruit.txt
文件进行手动修改,人工确定合并版本,并在提交解决文件后点击**标记为已解决
**
-
打开外部合并工具:打开自己在
-
本文处理
本文选择人工手动解决冲突,由于
mango
和lemon
都喜欢,所以合并的fruit.txt
文件中两种水果都添加将确定好的文件加入暂存区,添加备注后即可提交
由下图可以看到,冲突解决,解决后的新节点处分支
dev1
和主干master
的fruit.txt
文件相同,均添加了mango
和lemon
。
-
6.回滚与重置提交(revert,reset)
-
添加新内容:在主干
master
上的fruit.txt
文件中依次添加basketball
、football
、pingpang
-
回滚**
revert
**:删除这一步修改,但会保留这一次修改的版本,是在本版本的基础上进行回退操作下图可以看到,回滚前的节点仍然存在,并在该节点上
revert
,此时fruit.txt
文件中已经没有了pingpang
,已经回退到上一步 -
重置提交**
reset
**:有三种可选择的重置模式鼠标右键点击要重置到的节点,选择**
重置当前分支到此次提交
**此时会跳出选择合并方式的选项
有三种合并模式:
-
软合并:使状态退回到上一步提交前的状态
-
混合合并:使状态退回到上一步未暂存的状态
-
强行合并:使状态强制回退到上一节点,并将本次修改的所有记录全部清除
-
7.推送(push)
-
点击菜单栏**
远端
,点击设置
,添加
**远程仓库路径 -
到**
gitee
或者github
上创建一个仓库,然后点击克隆
或者Code
,复制路径到sourcetree
**中,并为云仓库起一个远端名称gitee
:github
: -
点击菜单栏**
推送
**选择要推送的分支点击**
确定
**
下图可以看到左侧远程仓库已有记录,图谱里本地分支旁边均有远程分支**origin/master
和origin/dev1
**标签,同时,刷新云仓库,可以看到云仓库已有文件,远程和本地并驾齐驱。
8.拉取(pull)和获取
- 获取是获取云端的更新,拉取是将云端的更新拉到本地
-
在云仓库中的
_fruit.txt
文件右侧点击**编辑
**,向其中添加bike
,然后在下方添加修改说明后点击提交 -
此时回到
sourcetree
可以看到菜单栏拉取
旁有一个消息,证明云端仓库中存在一个修改 -
此时可以先点击
获取
,来获取一下更新信息,此时可以看到云分支**origin/master
**已经显示出了更新信息 -
点击
拉取
,此时本地仓库的主干master
也获得了更新,和云端同步
9.其他功能
1.标签
选择某一节点,可以点击菜单栏或者鼠标右键选择标签
可以添加标签或者删除当前标签
2.贮藏
贮藏
可以贮藏未提交到仓库的文件
添加贮藏说明
添加完后,可以在左侧菜单栏贮藏内看到该贮藏文件
使用时,鼠标右键点击想要使用的贮藏,点击应用即可,此时贮藏文件便会回到工作区的未暂存文件内
3.丢弃
丢弃不想要且暂未提交的的修改
可以鼠标右键点击在工作区内的文件或者选择工作区内的文件后点击菜单栏内的丢弃
菜单栏内的丢弃可以选择丢弃所有更改
4.命令行模式
命令行模式即和**Git Bash
**相同,使用命令行进行仓库操作