Git客户端SourceTree的使用
1. Git相关
1.1 Git部分名词解释
- 克隆(clone):从远程仓库URL加载创建一个与远程仓库一样的本地仓库
- 提交(commit):将暂存文件上传到本地仓库(我们在Finder中对本地仓库做修改后一般都得先提交一次,再推送)
- 检出(checkout):切换不同分支
- 添加(add):添加文件到缓存区
- 移除(remove):移除文件至缓存区
- 暂存(git stash):保存工作现场
- 重置(reset):回到最近添加(add)/提交(commit)状态
- 合并(merge):将多个同名文件合并为一个文件,该文件包含多个同名文件的所有内容,相同内容抵消
- 抓取(fetch):从远程仓库获取信息并同步至本地仓库
- 拉取(pull):从远程仓库获取信息并同步至本地仓库,并且自动执行合并(merge)操作,即 pull=fetch+merge
- 推送(push):将本地仓库同步至远程仓库,一般推送(push)前先拉取(pull)一次,确保一致
- 分支(branch):创建/修改/删除分枝
- 标签(tag):给项目增添标签
- 工作流(Git Flow):团队工作时,每个人创建属于自己的分枝(branch),确定无误后提交到master分枝
- 终端(terminal):可以输入git命令行
1.2 用git命令按照以下步骤进行代码提交
(0)cd命令进入项目目录
(1)修改完代码后,git status查看自己的文件修改列表;
(2)git diff <文件名> 查看自己的文件修改记录;
(3) git add <文件名> 添加需要提交的文件列表;
(4)git commit -m "提交说明"
(5)git pull,更新一下当前最新的代码;
(6)git push 提交代码
2. SourceTree
- SourceTree是一个免费的Git图形化管理工具,适用于git进行项目版本控制
- SourceTree在window和Mac下都可以安装
- 下载SourceTree并安装和注册。
说明
:打开软件界面,我们可以clone或者create项目,填写源路径(即项目所在网址路径);目标路径(即存储的本地路径)。更改文件然后推送到远程平台。
2.1 用sourcetree将本地项目提交到指定url的远程仓库
2.1.1 创建远程仓库
可在github、码云、腾讯云开发者平台等云端代码托管平台来创建一个远程仓库。这里不作为重点,具体操作不再详细说明。
2.2 克隆远程仓库
(1)打开sourceTree, 点击“新建” -> “从URL克隆”, 如下图
![](https://img.haomeiwen.com/i1892430/f1a90365c6271c6b.png)
(2)粘贴“源URL”路径, 自动补全或者手动选择“目标路径”,并自定义“名称”。
![](https://img.haomeiwen.com/i1892430/48199cb404af25b3.png)
(3)点击“克隆”按钮,待克隆完毕后(或双击本地仓库名称) 会自动跳转到如下图所示界面,默认会checkout 一个名为master的分支, 并选中当前分支。
![](https://img.haomeiwen.com/i1892430/b4261240c0ad46a9.png)
(4)至此克隆完毕,点击SourceTree界面右上方的“在finder中显示”, 可看到如下图所示的界面。
![](https://img.haomeiwen.com/i1892430/0e0a7b1aaedace94.png)
2.3 将本地项目拖拽之已生成的目标文件夹
将本地已存在的项目文件夹拖拽到 2.2(2) 中“目标路径”下,拖拽成功后的本地文件列表一般包括:
- .git ->文件夹
- .gitignore ->忽略文件
- README.md ->说明文档
- jack_iot_ios ->项目文件夹
2.4 将本地项目首次提交到指定url的远程仓库
备注
:点击SourceTree右上角的“设置”->“高级”,可进入忽略文件的配置界面
![](https://img.haomeiwen.com/i1892430/2ec2be42b389fdad.png)
(1)提交:将本地项目拖拽之已生成的目标文件夹后,SourceTree界面的“文件状态”显示新增或修改的文件,左上角的“提示”按钮会统计出文件数量,表示需要进行提交操作。点击左上角“提交”并备注提交信息,之后点击右下角的“提交”按钮进行提交。
![](https://img.haomeiwen.com/i1892430/46eae04ac7e8465d.png)
![](https://img.haomeiwen.com/i1892430/d4afa03ab1ee49ab.png)
(2)推送:SourceTree界面 -> “推送”按钮 -> 选择仓库和分支 -> 确定。
![](https://img.haomeiwen.com/i1892430/b6dc0d26df48f220.png)
其他
2.2.1 分支类型(5种)及创建
(1) master,最终发布版本,整个项目中有且只有一个
(2) develop,项目的开发分支,原则上项目中有且只有一个
(3) feature,功能分支,用于开发一个新的功能
(4) release,预发布版本,介于develop和master之间的一个版本,主要用于测试
(5) hotfix,修复补丁,用于修复master上的bug,直接作用于master
创建新分支
:SourceTree -> 分支->新建分支
![](https://img.haomeiwen.com/i1892430/64531fed9d91b07b.png)
问题汇总
(1)问题1
- 问题:fatal: refusing to merge unrelated histories
- 分析:远程仓库origin上的分支master和本地分支master被Git认为是不同的仓库,所以不能直接合并。
- 解决:git merge master改为 git merge master --allow-unrelated-histories(未使用Git可视化工具SourceTree,使用git命令的情况下的解决方案)
- 备注:可能会在git pull或者git push中都有可能会遇到,这是因为两个分支没有取得关系。同理 git pull 改为 git pull origin master --allow-unrelated-histories。(假如我们的源是origin,分支是master)