tortoise git使用图解

git环境和工具

git环境下载: https://gitforwindows.org/
windows最好用的工具TortoiseGit下载: https://tortoisegit.org/download/

git工作流图解

git工作流程

克隆远程项目至本地仓库

找到gitlab上,项目对应的git地址:


取得git仓库地址

将git仓库clone至本地:

  • 输入git地址
  • 选定本地文件夹
  • 点击确定
  • 输入git账号密码
克隆仓库

提交

本地提交:
右键 -> git commit

  • 输入提交信息
  • 选中提交文件
  • 勾选操作选项(图中commit按钮)。

强烈建议选commit,不要选commit and push.
push 是影响远端服务器的操作,谨慎操作 !!!

提交目录

冲突解决

当两个代码块之间,有相同的修改。就会产生冲突。
冲突一般都是在pull或者merge request的时候产生的。
以下演示一个pull发生冲突的事例.

本地修改了README.md文件,pull


捕获4.PNG

提示文件有merge,没有办法拉取到本地工作区
这个时候需要将本地代码 commit或者stash(清空工作区)才能pull,合并代码
提交到本地之后,pull会提示代码有merge


冲突

打开文件,将冲突解决。
  • 蓝色线条标记为, 远程仓库的文件内容
  • 红色线条标记为,本地提交的文件内容

如果冲突比较复杂,建议拉小伙伴商量一下,要哪一行代码


冲突代码

解决之后,再点击git commit.
对之前冲突的文件右键-> resolved
文件会变为正常待提交状态。
再次commit即可。

推送修改至远端仓库

由于tortoise的UI排布问题。很难显性的看出一次push会推送多少个commit至远端
推荐先看一下版本树,右键-> Show log


版本树

如图所示, 每一个 commit会形成一个提交记录。

  • develop代表本地的develop分支
  • origin/develop代表远程仓库的develop 分支
    本地的develop节点,领先了远程的develop分支一个提交。

push本地的develop提交记录,至远端develop


push本地至远端

查看版本树:


再次show log

创建分支

点击右键 -> create Branch
Name - Branch 代表新建分支的名称
Base On 代表基于分支创建当前分支

  • head 代表当前活跃分支的游标
  • branch 代表对应的分支
  • Tag 代表分支上某次被标识的提交(比如 develop分支上某次历史提交)


    创建本地分支

正式创建分支

将创建的本地分支推送至远端
右键->push


新建分支推送至远端.PNG

切换分支

右键-> swich/check out
切换至develop_test分支


切换分支

如果本地工作区有代码尚未提交,需要commit或者stash。
清空工作区, 才能切换分支

分支合并

git分支合并有merge和rebase。这里只介绍merge方法.
rebase用的比较少,风险大(当然收益也大)。

rebase详细讲解请看://www.greatytc.com/p/f23f72251abc

补充:有同一祖先的分支,才能合并

将develop_test合并入develop分支
准备条件:

  • develop_test有几个独立的提交记录,并且已经提交至远端
  • 本地工作区切换至develop

右键-> merge
从远端的develop_test分支,合并入当前分支(develop)


从develop_test合并.PNG

如果两个分支有冲突,合并过来的代码会出现在提交列表中等待解决冲突。
解决冲突后,正常commit然后push即可

show log 看版本树,会看到develop_test上有一条线连入了develop分支


合并完成.PNG

如果要同步develop上的更改至develop_test。
切换至develop_test分支,再从develop merge合并即可

git推荐正确的使用流程

在分支合并的阶段,不在本地merge,而是发merge request

merge request

在项目主页,进入merge request
点击 new merge request


merge request.PNG
  • 红色笔标识项目
  • 蓝色笔标识分支

从source branch 合并至 target branch


merge request页面.PNG

配置选项,选择负责merge request的人


负责merge request的人.PNG

合并之后,删除source branch


选项说明.PNG

等待审核人完成此次merge request即可


审核完merge.PNG

最后

git要精通需要看懂其工作原理,多做实验。
push 和 merge request 需要谨慎,本地炸了,大不了删库,远程炸了只能跑路。。。

推荐:
超级全的git详解: http://www.cnblogs.com/best/p/7474442.html#_lab2_2_1

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