TortoiseGit使用入门教程.docx
TortoiseGit入门教程一参考资料:TOrtOiSeGit帮助文档边城浪子二。一七年元月二十日书目1、关于版本限制32、TOrtOiSCGit安装:32、TOrtoiSeGit文件夹图标说明:93、克隆远程库104、对文件进行修改135、提交更改。146、PUSh推送变更到库187、从远程库更新198、与远程库同步209、解决冲突2410、TortoiseGitMegar2811、查看本地文件与基础文件的差异3012、查看别人的修改3613、杳看文件的全部修改者3914、导出某一版本的文件4015、慎用CleanUp4316、gitignore和不需提交的文件4417、附:删除WindOWS凭据45】、关于版本限制版本限制是管理信息修改的艺术,它始终是程序员最重要的工具,程序员常常会花时间作出小的修改,然后乂在某一天取消了这些修改,想象一下一个开发者并行工作的团队-或许是同时工作在同一个文件!-你就会明白为什么一个好的系统须要管理潜在的混乱C这是来自TortoiseSVN文档的一段话,总结得很精辟.TortoiseGit是一个Windows卜的版本限制系统Git的客户端工具,正如其名字一样,小乌龟外面彳丁一个壳,TortOiSeGit也只是Git一个壳,使您更加便利的运用Git。Git是一个开源的分布式版本限制系统,可以有效、高速的处理从很小到特别大的项目版本管理。版本库就像一个常见的文件服务器,除了它保存你对文件和书目全部的变更。这一特性使得你可以复原文件的旧版本并查看历史-谁在什么时间如何进行的修改。因此也可以说版本限制系统是种“时间机器”。TOrtOiSCGit现在方多语宫包可以下载,本文档运用英文版进行说明。本文档是以个人阅历参考官方文档整理出来的,可能会存在许多问题,如有理解不正确的地方希望能够指出,大家共同学习吧。2、TortoiSeGit安装:首先安装gitforwindows,下栽地址:VUVMtpcKVfMX91gO2Vy三K<H11F41.;JU=o<*匚<r、依,R*xitOmwcmt*vv>Uras«azn三-Mm*B口-ifg>aTa©。*Qm,F载完成后安装:默认设置即可:一路“next”直到安装完成:安装tortoisegit:从网站上下载安装程序。2017/1/1916:1.TortoiseGit-2.3.0,064bitmsi双击安装文件进行安装:TortoiseGlTWelcometotheTortoiseGit2.3.0.0(64bit)SetupWizardTheSetupWizardNGSulTataseGt2.3.0.0(64bit)ykrcomputer.OckNexttocontinueorC11cdtoexittheSetupVard.<BadcNeXt>CanCdjTortoeGit2.3.O)(64bit)SetuptQ<BadcNeXt>CanCdTatoweGitPIink,basedonPTTY;OPtInredforTortoiseGitndCtegrGteSbetterwithVndws.OpenSSH,GtdefaultSSHCkntTtssettngcanbechangedhTortotseGtSettngSontheNutworlfpageIateron.<gatk.瓯1之2、TortoiseGit文件夹图标说明:乡正常文件,从上次与远程库同步后本地没有更改。本地更改过的文件,只要文件一编辑,就会出现这个图标。'有冲突的文件。执行“gitupdate-index”吩咐后显示该图标,表示文件即将提交,但还没有提交。表示文件已经删除或丢失。不受版本限制的文件,这种文件不会被提交。?新添加的文件,还没有加到版本限制里。*新添加的文件,已经添加到版本限制里,但还没有提交。借用官方文档上的张图说明下文件列表中各文件状态用颜色的表示:0Torto<J<G<WodonflYE-To*tc<G<,dx,tveoegMcntc*sMJ弋doM0rft-ow*fpn,×Mpe<n6r9t.pn9OxBMEEZ尸d×0QWO¾×,TMgM>vQC*V>G,1ftn3tJtdxworabWeGWfxi4>nIM7isaXl÷0l-n1.MftMXM<ln17231Xl44l-11IMO:09Xl÷01HPH<omprewtbMeShowch4r9e,5"2姆Commft.fJtt.Sipwo<kbttAiwnwI>chan9dShOWg6Jm11Ec<tt<ctent.Swr*w0AanHmtrdr0p*Op<nith.C<<or*toCopyMhsto<K>boardC*«1"cfmMGto<Spt>Mrd蓝色:本地修改了的文件。紫色:新增加的文件,已经添加到版本限制里,但还没有提交。深红:删除或丢失的文件。绿色:本地和远程修改了的文件,更新时可能产生冲突或合并。红色:本地库删除了文件而远程进行了修改或者相反,更新时可能产生冲突。黑色:未修改或未加入版本限制的文件。3、克隆远程库从现在起先要正式运用git来做版本限制了,忏先我们从git远程库将项目克隆(clone)到本地:在要建立项目的文件夹点击右键,选择“gitclone”:SS(V)分殂依JE(P)B«r(E)目三5CX55(F).MK(P)咕贴皿时痂S三iS(UCtrkZGitGUIHereGitBashHere共享(三)GitClone.RGitCreatereposriroryhere.TortoiseGit新建(W)属性(R)Directory:克隆目的地,默认为当前文件夹,不用修改。完成后点击“ok”,这时可能须要你添加用户名和密码,如下图:WindOWS会自动记住用户名和密码信息,如须要修改和删除请看附录删除windows凭据部分。点击确定后git会将远程库的文件clone到本地,如下图:myprpject>gTest名卷修改日期类型Xtest2017/1/1917:29文件打开文件夹进入项目文件夹内:myprqjectgitTesttest权行名称修改日期fi9”2017/1/1917:26文件夹HUCENSE2017/1/1917:26文件27KB勿README.md2017/1/1917:26MD文件1KB4testl.txt2017/1/1917:26XTOSIKB新;8ro的文件Ht2017/1/1917:26文本文IS1KB这里的S标记表示文件是正常的,没有进行过修改。4、对文件进行修改Clone下来后就可以对文件进行正常编辑等操作了。先新建一个文本文件“mytest.txt",输入内容“aaa”,mytesttxt文侬F)«(E)¾(O)XV)维助(Hlaaa编辑完成后保存。5、提交更改。提交你的更改到工作书目树称为“提交"。提交时先运用CheCkfOrModifiCationS功能查看一卜.都有哪些文件发生了变更,如卜图:ft(V)IWWK(O)5WW(f>)WE)asA*w<F>-WSUlBM(U)AGGUIHere介GrtBhHrMH)三Grc-J*cm*ion*fna*C它Tsoi“t*«W三tt<R)r尢1.rF1ch-JPush-QDiWwithpreAvverwooAShgtogAShowfUfl09停明效R»17/1/1817QO文终失2017/V1B166女性iO17ll&26MD文传2017V18lfr533tg入B,ow$<RefereCCro,ChckormodAcM*omI.,OSteshSaveBectstartQRetohre.QRere<t-.=Ge>nup-CtrUZpSwitdvciwckouU.YMerge.»CreateBranch.CrtT9-5E*port-.,Add.SubmoduleAdd-»CreetePatchSen1.I*App)yPAUhSiU假如没有冲突,可以点击“Commit”按钮进行提交:留意:(1)messagc必需填写。在卜面选择要提交的文件。上图中下面的表格里列出了全部变更的文件和状态,如“Modified”表示文件修改过,双击这个文件,可以打开外部对比编辑器查看文件的变更内容。Git要求注群必须耍填写,这点和svn有点不同了,懒人们要发怒了哈哈!提交时假如提示email没有设置可以进行设置:.,1.myproject9*tTettet-Settings-TortoiieGit,A,GeneralContextMenuS*tExttndMnukmColors1COlOr$2Colors3natweeditcxCredentia*“yHookScripts k,Tr*ckrInUgrab TrxkgrCOng,3IconOrefUy5品konSetqOvd>yHsd-9NetworkQEmadCgeC*rcZff<<vI1.el«Clobal«,Sy1HerOt919EiahtrHUasl:>52tlW.cmnb<r>tS<mn<IrtyJinheritAQMCr1.fCgvtrQAvteCrlfS<fCrUMlQvoteFathSmSGlcl-M“<4,0</<id皿Z0,efid4HW>riIdil.<>u<j>cIlClbtlUOSUCgt«vyit<14Clytkf-II1.11*助这里设置的信息将用来标识提交者O提交胜利后如下图所示:6、PUSh推送变更到库提交完成后可以干脆提交到远程库:推送界面如卜二Push完成:,E:myprojectgrtTesttest-GitCommandProgress-TortoiseGitJWMy4JJVW*、,.JWXr±±ng0b30co:100%(33),293byrosI0braas,done.Total3(delta1.),roused0(dol?a0)Tohtps:/git.oschna.notpxocodtoa.gi,c2d339c.0134Bmscor->masterSucceoa(20436G2017/1/1917:44:09)GeateplrequestI8SCI7、从远程库更新Pull和FetCh操作,这两个词不知道该翻译成什么好,先英文的呆着吧。Pull和FetCh都是从库里获得数据,不同之处在于Pull会获得远程修改并旦与本地库合并。FetCh仅仅获得远程数据,而不执行合并操作。因此比较起来还是用Fetch更加平安点。8、与远程库同步同远程库更新之前先与远程库进行一卜同步是一个不错的习惯,可以先了解一下远程库和本地的全部改动。在文件夹空白处点击右键,选择“GitSync”:三(V)>Affr(E)自定义文件夹(F).Wife(P)¾5%5SllH11演吉三S(U)CtrkZGitGUIHereGitBashHere共享(三)>GitSync.QKGitComm->'master*.牝TortoiseGit>SF三(W)>Bft(R)在同步窗口中点击“PuH”按钮边上的小三角,选择fetch用来获得远程数据,完成后如下图:一'E:myprojectgitT-GSynchronizationTortoiseGit1.ocala-arh:master-DRegteBWmMterTjRemote1.R1.:Jio11gnManage21Autok»dPuttyKeyQForceRefChangetypeOldhahOldmessageNewhashNewmessageporigin/HEADForward16f21el液力Sao33aae4OStecccpo119inmastcrForward16f21eal濯加33aac4O!SiCcccf,masterSame6f21ealjtCaa6f21eal添加<1.-««>M4»Hlg<05COEmttS入RefltFgj.KmITSubmoddeUpdateShowlogCocrrrntStashSaveThelocalbranch'master,doesnotfast-forwardtotheremotebrandAPPtyPatdiE11!PatchI1gIgI第行和其次行显示远程库已经有了次提交,你须要更新下来,点击fetch右边小三角,选择“Fetch&Rebase”,在接下来的曲口中干脆点击“是”:!¾.M1.PullFetchFetch&RebaseFetchallrefKRemoteUpdateCleanupstaleremotebranches点击“是”:Theremotebranchhasnotchanged.否(N)Opentherebasedialoganyway?Don'tshowthismessageagain选择合并:合并完成:假如有幸两个人修改r同个文件,后提交的用户提交时将会产生冲突,冲突须要手动解决。我们运用另一个用户在"y。UrteSttxt''增加“ddd”字符并提交到远程库:然后自己在文件中增加“eee”字符:修改完成后本地文件图标变成下在的样子:9it久ucNse“mytesttxt.README.mdtestl.txtOyoutesttxtS1.紫屑力文件.txt然后提交到本地库:当我们提交到远程库时会出现错误:点击Pull,将远程库下载到本地库,可在同步界面中点击“pull”按钮。下图列出来了全部的冲突文件,双击冲突文件,可以对冲突进行编辑。10、TortoiseGitMegar解决冲突与对比文件运用TOrtoiSeGitMegar工具,该工具可以完成以下工作:(1)察看两个文件的差异,合并它们,或者删除不想要的修改。(2)更新后,编辑本地修改和版本库修改之间的冲突。(3)应用补丁或查看它们。TortoiscMerge方三种主要视图方式:单粉格,两窗格和三窗格。单窗格/两窗格视图用于察看修改,三窗格用来解决冲突。解决冲突界面分三个窗口,左面口显示他人的文件与基础文件的差异,右窗口显示我的文件与基础文件的差异。底部窗口显示基础文件,我的文件,与他人的文件的合并结果,以和可能的冲突。编辑时可以点击右健,在菜单中选择运用远程内容还是本工作区内容,也可以选择干脆运用远程文件或本地工作区文件,还可以运用全部组合,不是他人的在我的之前,就是我的在他人的之前。窗口中左侧显示行状态图标,已经修改的行用图标指示发生了什么类型的修改,图标意义如F:+已经增加一行。一已经删除一行。=此行曾经修改过,但当前和基础内容一样(已经通过复原到原始内容而撤销修改)。此行只有空白的修改。当有几行连续被标记时,此段可能被重新排版,从而造成修改。久此行已经运用TortoiseMerge作为文本编辑器手工修改。,此行处于冲突状态“此行处于冲突状态,但是被空白或行结束符的设置掩盖。检测到该行已经移到其它位置或是从其它位置移过来(Thislineisdetectedasbeingmovedfrom/toanotherlocation)0编辑完毕后点击保存按钮进行保存,自动弹出是否解决冲突对话框:共享,新建文件夹名称修改日期叁大小匚9't2017/1/208:35文件夹aUCENSE2017/V208:21文件27KB乡,mytesttxt2017/1/1918Q2文本文档1KBQREADMEmd2017/V1917:26MD文件1KB二,testl.txt2017/1/208:21文本文档1KB(1.yoUtesttxt2017/1/2097乂文凶2KBWf35本g.tt2017/1/209:07文本文档OKBaJ新建文本文?S.txt2017/1/208:24x4*xtt0KB依据前面说的文件夹图标中的说明,可以看出“youtest.txt”文件进行了修改,“新建文本文档(2)txt”是一个新增的文件,其它的文件没有变更。要查看单个文件的变更状况可以在文件上点击右健,在菜单中选择:"Difiw.JmQgieETlCElYICEVnCJ-rcDiWwithpreviousversion1AShowlogQDe11x以ReiographCheckformodification*StMbSm“DiHwithpreviousversionw以上一个版本进行比较:2«.呦Junxwxizipu块MO文件1KBQteSa953«Xel1Kel.yo«1.EMQO55»1KB打开方式(三)»7261KBO使用360JWWfiHGitCommit->'ma5trw.优TortoiseGit在wc*mn中运行使用36Oe茬右IeQ±Sl三XRQ建注“大mat延83QQ三S)还/以献唯*<V)要杳看更多文件变更的具体状况可以在文件夹空白处点击右键,在弹出的菜单中选择aGitSync-w,弛出git同步窗口,如下图:只比较工作区中修改的文件与本地库的差别可以干脆点击“Commit”按钮,假如想比较与远程库的差异可以先进行PUn操作。点击“Commit”按钮,进入提交界面,如下图,提交界面列出了全部文件的更改:可以看到上面两行是修改过的文件,包括个删除的文件(这个删除的文件干脆在文件夹中杳看不到,因此也无法用图标显示,但这里可以看到)。将新增加的文件添加到版本库中可以在新文件上点击右键,选择“Add”,如下图:Changesmode(double<kkOnfHefcrCM0:Check:AllNoneUnversonedVersonedAddedDeletedModifiedFilessubmodulesZShowUnversionedFie匚DOnOtautosdectSUblShowVoteProjectMessageoriyViewrevisioninalternativeeditorOpenOpenwith.ExploretoDeleteAddtoignorelistCopypathstoclipboardCopyallinformationtoclipboardShellfilesselected,3filestotalMeWPatch>>要杳看新旧文件的弟异,可以双击文件行或在相关文件行上点击右健,选择44Comparewithbasew,将打开TortoiseGitMegar工具,如下图:1/1(AddS11jMfif一,voutest.*AmendgtCommit:SetauthorSte:SetaujhorCopypathstoclipboardCopyallinformationtoclipboardg一禽域aNotVersiotAa一新建处QChangesmade(douWedckOnfiefordff):Check:AllNoneUnversionedVersk>nedAjjDeletedModifiedRlesm”JjkfExtensxStotus1.inesoddedUnesremoved用SboWUnVerSiDonotautos<IPathModifiedFilesComparewithbaseShowchangesasunifieddiffRevert.SkipworktreeAssumeUnchangedRestoreaftercommitShowlogBlameExportselectionto.ViewrevisioninalternativeeditorOpenOpenwith.Exploreto3Hesselected,3fistotalVtewPatch»Shell从这个程序中可以看出新增加r哪些内容。假如确认可提交的话可以干脆点击下方的“Commit”或“Commit&Push”。12、杳看别人的修改在同步商口中点击“pull”按钮,将远程仓库的信息拉取到本地库,完成后一界面如下:在"inCommit”中,右键点击提交记玳,选择"Comparewithworkingtree",进入比较界面。,*E:mypcoj«ctgitTesttestGitSynchronization-TortoiseGitGraphActionsMessageast<rQComparewithwoddngtreeQShowchangesasunifieddiff&CompareWithpreviousrevision串QIpuJ-ShowlogIGxnmtOCOmmrtSahead"89MnasterRBrowserepositoryQReset-master-toth./CreateBranchatthisversionCreateTagatthisversion.,Exportthisversion.QRevertchangebythiscommit;/EditNotes4FormatPatch.JRPush.rPuii.XDeleterefsremotesori91rmaster1.ocalBranch:rn5ter-77ReroteBrancb:mStef,EDRemoteUR1.:J.0r>9r,Mn9eVlAutoiMdAJttyKeyForce13、慎用CleanCopySHA-ItoclipboardCopytoclipboardCopylogmessagestoclipboardSearchlogmessagesShowbrache5thisComfnitison在比较界面中可以看到远程库中别人的修改,如下图(左侧为别人修改的,右侧为自己的文件):13、查看文件的全部修改者依据须要,我们可以查看一个文件的全部更改历史。在文件上右键菜单中点击“Blame",弹出如卜对话框:9ilUpen*wtW8meIeIaW三<7*Wt?,1.KENse%mytwtt>,WADMetMl-fcrt.youuitt茂置技交O±fwe-youtoUip-(T)Cfl-ft在的闻朝UPOFFnWKIX)<J则0心口.文怏文件27KBIKBMOSt<tIKB文*JE1KB2kbOKB.OKe立配好i1KBICbUKGhCommt>'master"*TcrtoisG曾在双第沙3l行g期MrEM上e贪石财Q*三w*i三三ttQQMftBtixnMtKO46BSS(M)»ADimAm*aV11CEIVnaxnCExspraROiffWhprewicWni8AShowI09QDaemonJReviongr>phrOwek(ofmcdX>C4rt>ft*,SthSre)Rnm.XDelete»XDelete(keepkl)AF*&QDeleted*ddton<xeIrttTSettingf?HSIAbcl在这里不但.可以看到修改了哪行,而且可以看到谁修改的,是不是管理起来很便利。】4、导出某版本的文件点击右键,在菜单中选择TOrtoiSeGitExport.:2017/1/2010:422017/1/2010:44文本乂档2017/1/191726文本文档三S(V)发野方式(0)<SS(P)BJWr(E)自定义文件夹(F).Kfe(P)K5875iC(三)A演肖三三2(U)GitGUIHereGitBaShHereCtd÷Z共享(三),泡GitSync.GitCommrt->"master*.*TortoiseGit禁建(W)屋性(R)秋RevisiongraphRep©-brow$erCheckformodificationsRebaSeStashSaveBisectstartResolve.9Revert.rCleanup.SwitchCheckout.yMerge.T0CreateBranch.TCreateTag.EXPOfQAdd.SubmoduleAdd苏CreatePatchSerial.3ApplyPatchSerial.Settings在这里你可以选择导出最新版本(主分支),也可以选择导出某一子分支,也可以导出打标记时的版本或某一次提交时的版本。这里我们选择导出某一次提交时的版本,点击“commit”后面的,弹出选择对话框:这里列出r每次提交和提交时”的说明(现在知道说明的重要性r吧),下面窗口则显示了本次提交涉和的文件。选择一个版本,点击“ok”,点击上一界面的“ok”按钮,将该本文件导出。E:myprqjectgitTesttest-GitCommandProgressTortoiseGiti¾回QExploretoOOSeIAbort打开这个文件,是不是发觉有种回到了从前的感觉CWm>Prcjezjp光0任12正SC16Hgj电双C也自I三ftMW!UiW二m250挈%大小力24KBV-Zto三IWB-VcrMiMbddOT211ytest.z×ttestl.txtyoutest.txti8T3SX.txtSuccaaa(359aQ2017/1/2011:21:48)XMX60612daT0fS38c4T1.teBftj文网交u;UttNSE263KB钦3KB女样2017-01.PteUMIKBIKB文RE2017-01;REAOME/ndIKBIKBMD文42017-011KBIKB如处2017-01youtetrtIKB1K2011-01u.三三tCK5tatxt1KBIKB食*3«2017-0111大小夕4KB共6个文件ME354%15、慎用CIeanUP在svn中常常用到的清理功能在git中要慎用,否则可能删除你还要保留的文件。在右键菜单中点击“Cleanup”将弹出清理对话框,如下图:请留意上面的三个选项:(I)移除全部未受版本限制的文件。(2)移除全部未爱版本限制的文件(标记为ignore的除外)。(3)移除标记为ignore的文件。这三个选项都会删除相应的文件,请当心运用。16、.gitignore和不需提交的文件.gitignore配置文件用于配置不须要加入版本限制的文件,配置好该文件可以为我们的版本管理带来很大的便利。.开头的文件在WindOWS下认为只有扩展名而没有文件名,所以不能干脆建立该文件,可以运用记事本新建个文件,另存为0.gitignorew文件,文件内容如下:这是一个.net开发环境下的一个配置,表示全部的mdb文件和Idb文件不加入版本库;全部DebUg文件夹卜的文件、ReleaSe文件夹卜的文件、Obj文件夹下的、bin文件夹下的、UPlOad文件夹下的、App_Data文件夹卜.的、doc文件夹内的、packages文件夹Z的以和.vs文件夹不加入版本限制配置语法:以#号开头为注释。以斜杠“/”开头表示书目。以星号“*”通配多个字符。以问号通配单个字符。以方括号包含单个字符的匹配列表。以叹号“广表示不忽视(跟踪)匹配到的文件或书目;17、附:删除WindoWS凭据我们在第一次连接git库的时候输入的用户名和密码,后面再连接时就不用输入了,但方时我们可能要更换用户或者删除曾经运用过的用户名或密码该怎么操作呢?在限制面板中点击“凭据管理”:词整计加gAutodesMJfMWdHQflashPlayef(12ffi)ReEoteAPPIQJe面组R电,WindowiUpdate他备桧归还BlQ申机3*解调HCm化KeE电卷AutodesktgadwnaIntefnetSHfiVfindOwiC*rdSpace.Vndow防火爆*Wff中心.JtAIfi轮ma0RUBW3%三83il一aBrtKxkecUfgMHSgNVIaA控制面板Vrk>wsDefender*WindOWS移动O向SWlW谢I多MAM0所©该文档为本人原创文档,转战请注明!边城浪子二。一七年元月二卜口