您好,欢迎访问三七文档
GIT使用指南张定理2015/6/22015/6/9•基本概念•常用操作•注意事项•典型场景•深入理解基本概念远程基本概念本地中央仓库暂存区Stage/Index工作目录WorkingDir本地分支远程分支引用(Ref)•GIT中的分支名、远程分支名、tag等都是指向某个commit的引用。•比如master分支,origin/master远程分支,v1.2tag等都是引用,它们通过保存某个commit的SHA-1值,从而指向某个commit。•分支名指向的commit,就是这个分支上最新的commit。引用(Ref)常用操作下载代码•【SVN】svncheckout•【GIT】gitclonessh://zhangdingli@10.58.100.6:29418/S304[--depth=版本数]//复制远程仓库到本地,可以选择需要复制的版本数,减少本地仓库占用空间更新代码•【SVN】svnupdate•【GIT】svnpull//更新代码到本地远程仓库、本地仓库、暂存区和工作目录提交代码•【SVN】svnaddfilessvndelfilessvncommit–m“”•【GIT】gitaddpaths//保存文件或目录到缓存区gitrmpaths//从缓存区删除文件或目录gitmvpathspaths//重命名缓存区中的文件或目录gitcommit-m“代码提交信息”//将缓存区提交到本地仓库gitcommit–amend//合并最后一次提交gitpushoriginmaster//将本地仓库主干推送到中央仓库远程下载和提交本地中央仓库暂存区工作目录gitpull本地分支远程分支远程比较操作本地中央仓库暂存区工作目录SHA1SHA1SHA1gitdiffcommit1commit2本地分支远程分支恢复代码•【SVN】svnrevert-R•【GIT】gitresetHEAD--paths//从本地仓库恢复文件或目录gitcheckoutHEAD--paths//从本地仓库恢复文件或目录gitcheckout--paths//从暂存区恢复文件或目录gitclean–dfx[--paths]//删除所有没有被跟踪的文件回滚代码•【SVN】svnmerge–r大版本号:小版本号.svncommit•【GIT】gitresetcommit[--hard]//回滚本地仓库到历史提交合并代码•【SVN】svnmerge–r小版本号:大版本号•【GIT】gitmergeb1//合并b1分支的改动到当前分支gitrebaseb1//重放b1分支的改动到当前分支gitcherry-pickcommit//合并指定提交到当前分支gitrebaseHEAD~2//合并最近两次提交成一个提交分支操作•【SVN】创建分支:svncopy切换分支:svnswitch•【GIT】创建分支:gitcheckout–bb1切换分支:gitcheckoutb1工作进度•gitstash[save“message...”]//保存工作进度(即保存工作目录和暂存区的快照)•gitstashlist//查看工作进度•gitstashpop[--index][stash]//恢复并删除最近的工作进度•gitstashapply[--index][stash]//恢复最近的工作进度•gitstashdrop[stash]//删除工作进度•gitstashclear//清空所有工作进度标签•在git中有两种最主要的标签–轻量级标签(lightweight)和带注释的标签(annotated)。•轻量级标签跟分枝一样,不会改变。它就是针对某个特定提交的指针。•带注释的标签是git仓库中的对象。它是一组校验和,包含标签名、email、日期,标签信息,GPG签名和验证。•一般情况下,建议创建带注释的标签,这样就会保留这些信息,但是如果你只是需要临时性标签或者某些原因你不想在标签中附带上面说的这些信息,lightweight标签更合适些。标签操作•gittag[–lXXX]//查看标签•gittagv1.4-lw//创建轻量级标签•gittag-av1.4-m‘version1.4′//创建带注释的标签•gitshowv1.4//查看标签详细信息•gitpush–tags//提交标签到中央仓库其他常用操作•gitstatus[-s]//查看状态•gitlog[--pretty=raw]//查看日志•gitshow//查看版本细节•gitbranch[–r]//查看分支•gitls-files–dm//插件文件•gitreflog//查看分支HEAD操作记录•gitrevert//回滚某次提交注意事项•执行clone命令后,远程仓库会被复制到本地目录,即本地目录下的隐藏目录.git,一旦本地仓库被删除,本地提交将全部丢失•推荐大家将实际的.git目录移到比较安全的地方,然后在本地目录下创建一个到实际.git目录的软链接,具体操作方法如下:•mkdir~/.gitrepo•mv.git~/.gitrepo/S304•ln–s~/.gitrepo/S304.git空目录•和SVN不同,GIT只会跟踪文件,不会跟踪目录,所以无法将一个空目录提交到GIT仓库•有一种变通的方法来提交空目录,即在空目录下面新建要给空文件.gitignore,然后把.gitignore提交到GIT仓库常用场景编译发布版本的一般步骤•gitstash//保存当前工作进度•gitreset–hard--.../products//恢复platform和products的本地修改•gitclean–dfx--.../products//清空platform和products目录下新生成的文件•gitstatus–s//检查本地文件状态•gitstashpop//恢复当前工作进度深入理解创建分支切换分支合并(Merge)合并(Rebase)回滚参考资料••
本文标题:GIT使用指南
链接地址:https://www.777doc.com/doc-3551551 .html