TortoiseGit入门教程--参考资料:TortoiseGit帮助文档边城浪子二O一七年元月二十日目录1、关于版本控制...................................................................................32、TortoiseGit安装:.........................................................................32、TortoiseGit文件夹图标说明:.....................................................93、克隆远程库.....................................................................................104、对文件进行修改.............................................................................135、提交更改。.....................................................................................146、push推送变更到库.........................................................................187、从远程库更新.................................................................................198、与远程库同步.................................................................................209、解决冲突.........................................................................................2410、TortoiseGitMegar........................................................................2811、查看本地文件与基础文件的差异................................................3112、查看别人的修改............................................................................3713、查看文件的所有修改者................................................................4014、导出某一版本的文件....................................................................4115、慎用CleanUp..............................................................................4416、.gitignore和不需提交的文件...................................................4517、附:删除windows凭据................................................................461、关于版本控制版本控制是管理信息修改的艺术,它一直是程序员最重要的工具,程序员经常会花时间作出小的修改,然后又在某一天取消了这些修改,想象一下一个开发者并行工作的团队-或许是同时工作在同一个文件!-你就会明白为什么一个好的系统需要管理潜在的混乱。这是来自TortoiseSVN文档的一段话,总结得很精辟。TortoiseGit是一个Windows下的版本控制系统Git的客户端工具,正如其名字一样,小乌龟外面有一个壳,TortoiseGit也只是Git一个壳,使您更加方便的使用Git。Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。版本库就像一个常见的文件服务器,除了它保存你对文件和目录所有的改变。这一特性使得你可以恢复文件的旧版本并查看历史-谁在什么时间如何进行的修改。因此也可以说版本控制系统是一种“时间机器”。TortoiseGit现在有多语言包可以下载,本文档使用英文版进行说明。本文档是以个人经验参考官方文档整理出来的,可能会存在很多问题,如有理解不正确的地方希望能够指出,大家共同学习吧。2、TortoiseGit安装:首先安装gitforwindows,下载地址:下载完成后安装:默认设置即可:一路“next”直到安装完成:安装tortoisegit:从网站上下载安装程序。双击安装文件进行安装:2、TortoiseGit文件夹图标说明:正常文件,从上次与远程库同步后本地没有更改。本地更改过的文件,只要文件一编辑,就会出现这个图标。有冲突的文件。执行“gitupdate-index”命令后显示该图标,表示文件即将提交,但还没有提交。表示文件已经删除或丢失。不受版本控制的文件,这种文件不会被提交。新添加的文件,还没有加到版本控制里。新添加的文件,已经添加到版本控制里,但还没有提交。借用官方文档上的一张图说明一下文件列表中各文件状态用颜色的表示:蓝色:本地修改了的文件。紫色:新增加的文件,已经添加到版本控制里,但还没有提交。深红:删除或丢失的文件。绿色:本地和远程修改了的文件,更新时可能产生冲突或合并。红色:本地库删除了文件而远程进行了修改或者相反,更新时可能产生冲突。黑色:未修改或未加入版本控制的文件。3、克隆远程库从现在开始要正式使用git来做版本控制了,首先我们从git远程库将项目克隆(clone)到本地:(1)在要建立项目的文件夹点击右键,选择“gitclone…”:URL:填写git远程库的地址。Directory:克隆目的地,默认为当前文件夹,不用修改。完成后点击“ok”,这时可能需要你添加用户名和密码,如下图:Windows会自动记住用户名和密码信息,如需要修改和删除请看附录删除windows凭据部分。点击确定后git会将远程库的文件clone到本地,如下图:打开文件夹进入项目文件夹内:这里的标记表示文件是正常的,没有进行过修改。4、对文件进行修改Clone下来后就可以对文件进行正常编辑等操作了。先新建一个文本文件“mytest.txt”,输入内容“aaa”,编辑完成后保存。5、提交更改。提交你的更改到工作目录树称为“提交”。提交时先使用CheckforModifications功能查看一下都有哪些文件发生了变化,如下图:如果没有冲突,可以点击“Commit”按钮进行提交:注意:(1)message必须填写。(2)在下面选择要提交的文件。上图中下面的表格里列出了所有改变的文件和状态,如“Modified”表示文件修改过,双击这个文件,可以打开外部对比编辑器查看文件的改变内容。Git要求注释必须要填写,这点和svn有点不同了,懒人们要发怒了哈哈!提交时如果提示email没有设置可以进行设置:这里设置的信息将用来标识提交者。提交成功后如下图所示:6、push推送变更到库提交完成后可以直接提交到远程库:推送界面如下:Push完成:7、从远程库更新Pull和Fetch操作,这两个词不知道该翻译成什么好,先英文的呆着吧。Pull和Fetch都是从库里获取数据,不同之处在于Pull会获取远程修改并且与本地库合并。Fetch仅仅获取远程数据,而不执行合并操作。因此比较起来还是用Fetch更加安全点。8、与远程库同步同远程库更新之前先与远程库进行一下同步是一个不错的习惯,可以先了解一下远程库和本地的所有改动。在文件夹空白处点击右键,选择“GitSync…”:在同步窗口中点击“Pull”按钮边上的小三角,选择fetch用来获取远程数据,完成后如下图:第一行和第二行显示远程库已经有了一次提交,你需要更新下来,点击fetch右边小三角,选择“Fetch&Rebase”,在接下来的窗口中直接点击“是”:点击“是”:选择合并:合并完成:打开本地文件,发现对方的修改已经同步到本地:9、解决冲突如果有幸两个人修改了同个文件,后提交的用户提交时将会产生冲突,冲突需要手动解决。我们使用另一个用户在“yourtest.txt”增加“ddd”字符并提交到远程库:然后自己在文件中增加“eee”字符:修改完成后本地文件图标变成下在的样子:然后提交到本地库:当我们提交到远程库时会出现错误:点击Pull,将远程库下载到本地库,可在同步界面中点击“pull”按钮。下图列出来了所有的冲突文件,双击冲突文件,可以对冲突进行编辑。10、TortoiseGitMegar解决冲突与对比文件使用TortoiseGitMegar工具,该工具可以完成以下工作:(1)察看两个文件的差异,合并它们,或者删除不想要的修改。(2)更新后,编辑本地修改和版本库修改之间的冲突。(3)应用补丁或查看它们。TortoiseMerge有三种主要视图方式:单窗格,两窗格和三窗格。单窗格/两窗格视图用于察看修改,三窗格用来解决冲突。解决冲突界面分三个窗口,左窗口显示他人的文件与基础文件的差异,右窗口显示我的文件与基础文件的差异。底部窗口显示基础文件,我的文件,与他人的文件的合并结果,以及可能的冲突。编辑时可以点击右键,在菜单中选择使用远程内容还是本工作区内容,也可以选择直接使用远程文件或本地工作区文件,还可以使用所有组合,不是他人的在我的之前,就是我的在他人的之前。窗口中左侧显示行状态图标,已经修改的行用图标指示发生了什么类型的修改,图标意义如下:已经增加一行。已经删除一行。此行曾经修改过,但当前和基础内容一样(已经通过恢复到原始内容而撤销修改)。此行只有空白的修改。当有几行连续被标记时,此段可能被重新排版,从而造成修改。此行已经使用TortoiseMerge作为文本编辑器手工修改。此行处于冲突状态。此行处于冲突状态,但是被空白或行结束符的设置掩盖。检测到该行已经移到其它位置或是从其它位置移过来(Thislineisdetectedasbeingmovedfrom/toanotherlocation)。编辑完毕后点击保存按钮进行保存,自动弹出是否解决冲突对话框:点击标记为解决,将冲突标记为解决。再次进行提交。11、查看本地文件与基础文件的差异有时我们改了好多文件,但有一部分改错了想改回来或者想查看一下都作了哪些更改,可以使用此方法查看。首先我们可以从文件(夹)图标上简单看出哪些文件进行了更改,如下图:根据前面说的文件夹图标中的说明,可以看出“youtest.txt”文件进行了修改,“新建文本文档(2).txt”是一个新增的文件,其它的文件没有变化。要查看单个文件的变更情况可以在文件上点击右键,在菜单中选择“Diffwithpreviousversion”以上一个版本进行比较:要查看更多文件变更的详细情况可以在文件夹空白处点击右键,在弹出的菜单中选择“GitSync…”,弹出git同步窗口,如下图:只比较工作区中修改的文件与本地库的差别可以直接点击“Commit”按钮,如果想比较与远程库的差异可以先进行Pull操作。点击“Commit”按钮,进入提交界面,如下图,提交界面列出了所有文件的更改:可以看到上面两行是修改过的文件,包括一个删除的文件(这个删除的文件