赞
踩
TortoiseGit在平常开发项目时经常会用到,而且其功能丰富。在部分情况下,相比于“Git指令”更为方便使用。以下介绍几个TortoiseGit常用的场景:
1).安装TortoiseGit以及“中文语言包”:Download – TortoiseGit – Windows Shell Interface to Git
2).打开“资源管理器Explorer.exe”,在其任意目录下鼠标右键选择“TortoiseGit -> Settings -> General”,设置语言为“中文(简体)”即可
TortoiseGit在使用“SSH链接”拉取远程仓库代码时,默认会使用TortoiseGit自带的“TortoiseGitPlink.exe”来拉取。如果没有预先对TortoiseGit做些配置,则会报错:
解决方法有两种:
方式一:配置TortoiseGit
参考链接:Github时常无法连接导致push或pull失败_github push不上去-CSDN博客
方法二:修改TortoiseGit使用的“SSH客户端”
由于直接使用“Git指令”如“git clone”可以拉取ssh远程仓库的代码,因此修改TortoiseGit默认使用的“SSH客户端”为“Git指令”的“ssh.exe”即可
1).安装“Git客户端”完毕后,其“ssh.exe”地址默认为“C:\Program FIles\Git\usr\bin\ssh.exe”
2).打开“资源管理器Explorer.exe”,在其任意目录下鼠标右键选择“TortoiseGit -> Settings”打开设置弹窗,选择“Network”,将SSH client路径修改为“Git客户端”使用的“ssh.exe”路径即可
点击“确定”后即可使用TortoiseGit拉取SSH远程仓库代码
PS:以上操作是基于“直接使用Git指令可以拉取SSH远程仓库”的条件下才有效的。如果连“Git指令”都无法拉取,则需要先生成公钥并添加到远程仓库才可以。操作可参考:Github时常无法连接导致push或pull失败_github push不上去-CSDN博客
日常开发中有时会遇到这样的情况:在“分支A”中正在开发功能,但由于某些情况需要切换到“分支B”以执行其他操作,但“分支A”当前修改的内容也不适宜提交,因此无法直接切换到“分支B”
此时可使用TortoiseGit的“Stash changes”功能,将“分支A”当前修改的内容缓存起来。待“其他操作”都执行完毕后再将这些“修改内容”Pop出来以继续功能开发。
详细流程如下:
1).缓存“分支A”的修改内容
在当前项目的根目录下,鼠标右键选择“TortoiseGit -> Stash changes”,并为本次stash设置名称:
点击“OK”后即会将“分支A”修改的内容缓存起来,但其并没有commit到本地仓库或push到远程仓库,仅仅保存在git的“缓存队列”中。且该“缓存队列”对本项目的所有分支都适用,即切换为“分支B”后也可以查看“缓存队列”中的所有已保存内容
2).切换到“分支B”以执行其他操作
3).待所有操作都执行完毕后,重新切换回“分支A”,并Pop之前缓存的内容
在项目根目录下,鼠标右键“TortoiseGit -> Stash List”查看“缓存列表”:
Stash changes:将当前分支的修改内容保存起来,以方便后续切换分支等操作
Stash Pop:将“缓存列表”中第一个保存的“修改内容”Pop到当前分支
Stash List:查看当前“缓存队列”中所有已保存的内容,也可选择某条“缓存记录”并Pop出来。
注意:如果将某次提交的内容从“缓存队列”中Pop出来,则“缓存队列”不会再保存该次提交的内容
4).在“分支A”继续开发功能逻辑
日常开发中,针对某些特定功能通常都会新建一个分支进行开发,待开发完毕并测试通过后才会将提交的代码合并到主分支。
如果仅仅只需要合并“新分支”中具体某条指定的记录,则可使用如下方式:
1).首先将项目切换到“目标分支A”
2).项目根目录下鼠标右键“TortoiseGit -> Show Log”弹出“分支A”的“日志记录”
3).点击右上角的“分支A”,切换到“分支B”,此时列表中会展示“分支B”所有的提交记录:
4).选中需要合并的某条记录后,鼠标右键选择“摘取此提交”
5).在弹出的面板中点击“继续” -》“完成”
如此“分支B”中该条记录修改的代码就合并到“目标分支A”了
功能开发中,针对某些功能可能会频繁提交多次,如果同时还需要将这些提交记录合并到其他分支,那需要针对每条提交记录分别合并,这样会很麻烦。
因此如果可以将多次提交记录合并成一条,那“跨分支合并代码”时也会很方便
操作过程:
在项目根目录下,鼠标右键选择“TortoiseGit -> show log”。选中“需要合并的多条提交记录”并点击鼠标右键选择“Combine to one commit”:
注意:如果当前分支有修改内容未提交,则会弹出如下窗口:
此时需要先提交本地修改(建议使用“Stash changes”)或清除本地修改内容后再执行以上操作即可成功合并多条提交记录
每次提交代码后,Git都会针对该次提交生成唯一id。如在项目根目录下,鼠标右键选择“TortoiseGit -> show log”,在“记录列表”中随便选择一个即可在中间的窗口中看到该次提交生成的“唯一id”:
PS:有的项目中会将代码仓库与TAPD或禅道等关联,当提交代码时,复制TAPD或禅道的单子链接作为“commit message”,之后在TAPD或禅道的网页中即可查看到与该条单子相关的已提交代码。
并且后续如果需要合并代码,也可只合并与该条单子相关的已提交代码,其他代码则不会被合并到目标分支中
当安装TortoiseGit和TortoiseSVN后,在提交已修改内容到本地仓库或推送到远程仓库后,项目文件左下角并没有显示“红色”或“绿色”图标,不利于查看本地文件修改以及提交状态
原因:Windows系统支持Overlay Icon最多15个,Windows自身使用了4个,剩余11个,按照注册表中排列顺序依次分配。如果TortoiseSVN分配的优先级靠后,超出第10个,则不会显示
解决方法:
1).打开注册表:“Windows + R”打开“运行”窗口,输入“regedit”打开“注册表”窗口
2).查找图标路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
3).调整TortoiseSVN图标的展示顺序:
图标分配规则:在“ShellIconOverlayIdentifiers”下按照从上到下的顺序依次分配图标,最终支持展示10个图标。所以如果TortoiseSVN排列在“第10个之后”,则其不会展示
修改规则:重命名各个选项 —— 在原有名字前添加“空格”可以直接提交其优先级,空格越多优先级越高
4).重命名结束后,需要重启“Windows资源管理器”才能让该图标生效
PS:TortoiseSVN和TortoiseGit的作用区分:前者会将文件与本地仓库上个版本进行对比以方便显示“红色、绿色、黄色”等图标,而TortoiseGit则主要处理与远程仓库的交互,如上传和拉取等。因此如果只安装TortoiseGit可能无法及时监测本地仓库文件的修改状态,还需要安装TortoiseSVN才可以
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。