Git图形界面工具 - TortoiseGit

安装步骤

1.Git-2.13.2-64-bit 下载地址
2.TortoiseGit-2.3.0.0-64bit.msi 下载地址
3.TortoiseGit-LanguagePack-2.3.0.0-64bit-zh_CN.msi 下载地址

配置

1. 选定一个存放Git仓库的目录,打开该文件夹,在空白处右键,选择TortoiseGit --> Settings,在设置界面设置语言,不勾选自动升级的复选框,点击应用、确定关闭对话框。

2. 再次鼠标右键打开设置对话框,弹出菜单已切换中文,将所有的复选框都去掉,这样右键菜单显得比较干净。

3. 设置,选择左边的Git标签。右边显示名字与Email信息,如下图所示:

点击 “编辑全局 .git/config(O)”按钮,会使用记事本打开全局配置文件,在文件后面加上下面的内容:

[credential]

helper = store

完成后保存,关闭记事本,确定即可。

创建本地仓库与远程仓库的连接

至此Git本地仓库就搭建完成,远程仓库可以搭建在Github等平台或自己的服务器上,此处以GitHub为例

1. 注册GitHub账户Github官网

2. 登录Github,在右上角找到 New Repository 或者加号下拉按钮(+),新建仓库。

3. 设置远端URL

远程仓库创建完成,页面如下图所示:

获取Github远程仓库的SSH地址,复制,例如:

git@github.com:ZQInQAAS/GitRepository.git

打开之前选定的存放Git仓库的目录,在空白处右键,选择TortoiseGit选项,此时有两个选择,克隆或在这里创建版本库,前者是将已有的远程仓库克隆到本地,后者是远程仓库未建立时先在本地创建再推送至远程。

此处我们选择在这里创建版本库,自动创建一个.git隐藏文件。右键TortoiseGit->设置->Git->远端 对远程仓库的地址进行设置。在URL处粘贴刚刚复制的SSH地址,远端名会自动填充,一般 默认origin。点击添加/保存按钮。

4. 设置远端秘钥

打开TortoiseGit安装目录下的PuttyGen,在打开的窗口中点击Generate按钮,会出现绿色进度条,根据鼠标晃动生成ppk秘钥。生成结束后,复制滚动文本框内的全部内容,点击Save private key按钮,保存为适用于TortoiseGit的私钥,扩展名为.ppk。

登录github,在右上角个人中心里找到Settings->SSH and GPG keys,点击New SSH key。在Key处粘贴秘钥,Title可不填,点击Add。

进入Git本地仓库的目录,右键空白处,打开TortoiseGit->设置->Git->远端,选中origin,在Putty秘钥一栏选择正确的ppk文件路径。

测试

在本地仓库添加文件,右键TortoiseGit ->add->commit->push,如果能推送成功,说明连接建立成功。

注意:

rsa是一种加密传输的算法,使用一对公钥public key和私钥private key分别加密和解密。

如果使用git-bash命令行操作,使用如下命令创建秘钥(SSH Key):

$ssh-keygen -t rsa -C"youremail@example.com"

然后一路回车,使用默认值即可,密码可以不设置。完成后在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,id_rsa.pub是公钥。

因为我们使用TortoiseGit作为github本地管理工具,TortoiseGit使用扩展名为ppk的秘钥,而不是ssh-keygen生成的rsa密钥。也就是说使用ssh-keygen -C "username@email.com" -t rsa产生的密钥TortoiseGit中不能用。而基于github的开发必须要用到rsa密钥,因此需要用到TortoiseGit的putty key generator工具来生成既适用于github的rsa密钥也适用于TortoiseGit的ppk密钥,具体配置步骤如下:
1)运行TortoiseGit开始菜单中的puttygen程序,如下图示

image.png

2)点击“Generate”按钮,鼠标在上图的空白地方来回移动直到进度条完毕,就会自动生一个随机的key,如下图示


image.png

如有需要,可以为密钥设置对应的访问密码,就是修改上图中“Key passphrase”和“Confirm passphrase”的值。
3)将上图中多行文本框的内容全选、复制,并粘贴到git账户的 SSH public key中,这就是适用于git的公钥。
4)点击上图中的“Save private key”按钮,将生成的key保存为适用于TortoiseGit的私钥(扩展名为.ppk)。
5)运行TortoiseGit开始菜单中的Pageant程序,程序启动后将自动停靠在任务栏中,图标显示为,双击该图标,弹出key管理列表,如下图示


image.png

6)点击上图中的“Add Key”按钮,将第4步保存的ppk私钥添加进来,关闭对话框即可

此外,如果你不想使用PuttyGen生成秘钥也可以,右键->TortoiseGit->设置->网络,将ssh 客户端默认的改为:%Git安装目录%/usr/bin/ssh.exe,再把ssh-keygen命令创建的公钥id_rsa.pub添加到github个人中心的SSH key里即可。

基本操作

场景1

Tips:我们需要开发一个新项目,要从远程仓库将代码克隆到本地。

  • 进入到 X:\XXXXX 目录
  • 右击 => Git Clone...
  • 如下图所示(红框中的内容就是项目的Git地址)

Tips:根据项目大小, 时间会不一样. 克隆完成后, 如果没有错误, 会给出如下提示

场景2

Tips:单人独立开发这个项目,噼里啪啦一顿操作,操作结束提交到本地仓库。

  • 创建一个文件,如 test1.txt , 然后提交 (commit) 到本地版本库。

  • 右击 => Git Commit => ”master” 。如下图所示:

  • 填写提交备注 message (不填写是不允许提交的),勾选需要提交的文件,点击 commit,即可将本地代码提交到本地仓库。出现如下弹框,表示提交成功。

image

ps:提交时,会发现上图中的 Status 有这几种值

Status 含义
Unknown 新增的文件,也不在版本库。
Added 新增的文件,在版本库。
Modified 文件修改,在版本库 。
Missing 文件被删除,在版本库。

场景3

Tips:本来独立开发(暗爽),突然入职两位新同志(捣乱的来了),要和你共事这个项目。之后项目经理告诉你:小张!来,把代码提交到远程仓库,好让新同事在新的代码上更改。

将代码推送 (push) 到远端。

  • 在文件内右键空白处,选择 Git Push,出现如下弹框:

  • 点击ok,就可以了。

场景4

Tips:来了个新同事分单任务好像还不错。 今天他的任务不重,还没下班就做完了,把代码提上去了(提交到远程仓库),还叮嘱我把代码更新一下。

  • 右键空白处,选择 Git Pull,出现如下弹框:

  • 点击ok,就可以更新至最新代码。

场景5

Tips:上午项目经理分配了任务,大家又开始操作起来,然后这个同事又比我早做完了什么鬼不可能啊!,他潇洒的提交代码回家了,哼哧哼哧写好了可以提交了,拉取代码pull发现报错了肯定是他又写bug了,应该是修改了同一文件产生了冲突。

轮到我们操作的时候了:

  • 将代码提交(commit)到本地仓库场景2
  • pull代码场景4
  • pull下来之后发现冲突了。
image
  • 解决冲突:噼里啪啦记得去掉<<<<<<< HEAD ======= >>>>>>>xxxxxxx
  • 将代码提交(commit)到本地仓库场景2
  • push到远端场景3
  • 修改结束潇洒离场。

场景6

Tips:开发了一段时间,突然出现了一个重大BUG,领导要查明原因,就找到了我们两个小开发,并的追问这个“杰作”出自谁手,都不清楚也不承认。第⼆天来了之后发现,我的“小伙伴”被通告了,原来是经理查了提交代码的历史记录,查出是那位同事写的bug。我就说嘛,我怎么可能犯这种低级错误。

查看git提交记录

  • 右键空白处 => TortoiseGit => show log,出现如下弹框:

  • 通过日志,可以很直观的看到提交相关记录。比如提交人、提交时间、提交了哪些文件等等。这些信息便于以后进行文件对比。

场景7

Tips:过了几天,公司又来了一位大数据工程师,来开发咱们系统的报表模块;咱们开发的项目需要新起分支来开发这部分需求。

创建分⽀支

  • 新建一个分支,右键 =>TortoiseGit=>Create Branch。

  • 右键,你会发现当前的分支为master 分支,你需要切换到data分支。

  • 切换分支,右键 =>TortoiseGit=>Switch/Checkout。

  • 然后将它push上去。

    image

场景8

Tips:项目开始进行并行开发流程,现在想上线一版,将两部分的功能在一 个项目里展示,那么就需要合并分支了。

在合并分支前,一定要确认 data 分支上的代码全部提交到本地版本库,或者别人开发完你pull到了本地。

  • 右键 => TortoiseGit => Merge,选择被合并的分支。

场景9

Tips:测试小伙伴们测试好这个流程感觉没啥问题,决定在今晚上线,咱们想要在版本库中让他们记住这一版的状态,又不不想通过log查询(毕竟log每天都更更新, log早就成千上万了)

给当前版本tag标签

  git tag -a v1.0.0  -m '测试部署 1.0.0'
  git push origin --tags
  // 查看标签
  git tag
  // 查看指定版本号
  git show v1.0.0

场景10

Tips:项目来来回回上线了了几版,产品经理忽然发现后续版本的需求完全是画蛇添足,让我们回到第一版。

版本回退

  • 查看提交日志, 确定回退的版本。

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

推荐阅读更多精彩内容