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下都可以安装。

拓展—创建远程仓库:可在github、码云、腾讯云开发者平台等云端代码托管平台来创建一个远程仓库。这里不作为重点,具体操作不再详细说明。

2.1 下载SourceTree并安装和注册

(1) window版:打开软件界面,我们可以clone、add或create项目

  • 源路径:项目所在的网址路径
  • 目标路径:存储在本地的路径

(2) Mac:版打开界面如下:


image.png

2.2 本地和远程仓库建立关联

三种关联情形:

  • 从远程克隆项目到本地(正常模式):本地没有项目,从远程克隆项目到本地
  • 本地和远程断开后重新关联:本地以前关联过git仓库的项目,本地项目仍在但sourcetree重装导致关联断开
  • 本地首次关联远程空仓库:本地已有项目,并未关联任何git仓库
2.2.1 window版:本地和远程三种关联情形的操作

(1) 从远程仓库克隆项目到本地:菜单中Clone, 填写仓库地址,填写目标路径(即项目本地存放位置,需是空目录)。
(2) 本地和远程断开后重新关联:菜单中Add, 添加本地项目路径,添加完就ok了。
(3) 本地首次关联远程空仓库:菜单中Create ,添加的是本地项目路径, 创建; 创建完后还需要管理远程仓库,即点击右上角的设置, 填写远端名称(默认是 origin)、 URL、填写git地址。

:第三种情况需要先拉取,再提交。否则还要关联master,拉取的时候,点击刷新,选中master。

2.2.2 Mac:本地和远程三种关联情形的操作

(1) 从远程仓库克隆项目到本地

  • 打开sourceTree,点击“新建” -> “从URL克隆”,如下图


    克隆远程仓库.png
  • 填写“源URL”路径(远程仓库项目地址),自动补全或手动选择“目标路径”(本地存放项目的空目录),并自定义“名称”。
补全信息.png
  • 点击“克隆”按钮,待克隆完毕后(或双击本地仓库名称) 会自动跳转到如下图所示界面,默认会checkout 一个名为master的分支,并选中当前分支。


    SourceTree界面.png
  • 至此克隆完毕,点击SourceTree界面右上方的“在finder中显示”, 可参看项目本地目录(因为示例远程仓库是个空仓库,所以克隆到本地的项目是一个仅包含README.md的空项目)。


    远程项目克隆至本地.png

(2) 本地和远程断开后重新关联

  • 打开sourceTree,点击“新建” -> “添加已经存在的本地仓库”,如下图


    添加已经存在的本地仓库.png
  • 添加本地项目路径,添加完就ok了。

(3) 本地首次关联远程空仓库

  • 创建远程空仓库:gitee、github、腾讯云等远程托管平台
  • 进入本地项目路径:cd 本地项目目录
  • 初始化本地仓库(使其成为git仓库):git init
  • 本地仓库关联远程仓库:git remote add origin 远程仓库地址
  • 推送:git push -u origin master
image.png

之后,在soucetree中添加已经存在的本地仓库,配置本地项目路径和远程仓库路径即可。


image.png

2.3 将本地代码提交到远程仓库

如果本地首次向远程仓库提交代码,需先添加忽略文件(提交时忽略文件不会显示在提交列表中):点击SourceTree右上角的“设置”->“高级”->“编辑”,在gitignore中添加需要忽略的文件。参考source tree 如何忽略文件。

配置忽略文件.png

备注:如果需要修改忽略的文件列表(修改本地的.gitignore文件),有时需要先将远程仓库中的.gitignore文件删除,然后再提交.gitignore文件。
image.png

(1) 提交:将本地项目拖拽至已生成的目标文件夹后,SourceTree界面的“文件状态”显示新增或修改的文件,左上角的“提示”按钮会统计出文件数量,表示需要进行提交操作。点击左上角“提交”并备注提交信息,之后点击右下角的“提交”按钮进行提交。


提交操作.png

提交成功.png

(2) 推送:SourceTree界面 -> “推送”按钮 -> 选择仓库和分支 -> 确定。


推送至远程仓库.png

3. 五种分支类型及创建

(1) master,最终发布版本,整个项目中有且只有一个
(2) develop,项目的开发分支,原则上项目中有且只有一个
(3) feature,功能分支,用于开发一个新的功能
(4) release,预发布版本,介于develop和master之间的一个版本,主要用于测试
(5) hotfix,修复补丁,用于修复master上的bug,直接作用于master
创建新分支:SourceTree -> 分支->新建分支

创建新分支.png


4. 问题汇总

sourcetree使用问题汇总

(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)

(2) 删除腾讯云仓库


删除腾讯云仓库.png

你可能感兴趣的:(Git客户端SourceTree的使用)