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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容

  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,645评论 4 54
  • Git常用语法 [TOC] Git简介 描述 ​ Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,...
    君惜丶阅读 3,493评论 0 13
  • 一、Git是什么? 是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常 大的项目版本管理。 Git ...
    名字谁不会取阅读 1,027评论 0 0
  • 多种多样的工作流使得在项目中实施Git时变得难以选择。这份教程提供了一个出发点,调查企业团队最常见的Git工作流。...
    JSErik阅读 4,360评论 2 8
  • 声明:这篇文章来源于廖雪峰老师的官方网站,我仅仅是作为学习之用 Git简介 Git是什么? Git是目前世界上最先...
    横渡阅读 3,941评论 3 27