《(新)GIT版本管理详解.docx》由会员分享,可在线阅读,更多相关《(新)GIT版本管理详解.docx(20页珍藏版)》请在第一文库网上搜索。
1、日常工作需要掌握add,commit,status,fetch,push,rebase等,若要熟练掌握,还必须掌握rebase和merge的区别,fetch和PU1I的区别等,除此之外,还有cherrypick,submodu1e,StaSh等功能,一、操作示意图checkoutreset工作区_“山4音存区一TCEEi本电历史含_远喔6(WorkingDirectory)Stage(Index)、(Repository)P(r 工作区:仓库文件夹里面,除了.git目录以外的内容 版本库:Git目录,用于存储记录版本信息 版本库中的暂缓区(stage) 版本库中的分支(master):Git自
2、动创建的第一个分支 版本库中的HEAD指针:用于指向当前分支Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD操作手册1 .术语/master:默认开发分支/origin:默认远程版本库/Index/Stage:暂存区/Workspace:工作区/Repository:仓库区(或本地仓库)/Remote:远程仓库2 .命令手册类型命令解释命令求助$githe1p初始化在当前目录新建一个Git代码库$gitiit新建一个目录,将基初始化为Git代码库$gitiitproject-name下载一个项目和它的整个代码历史$gitc1oner1$gitc1onessh
3、:/user$serrepo.git配置列举所有配置$gitconfig-I($gitconfig-1ist)编辑配置文件$gitconfig-e-g1oba1为命令配置别名$gitconfig-g1oba1a1ias.cocheckout$gitconfig-g1oba1a1ias.cicommit$gitconfig-g1oba1a1ias.ststatus$gitconfig-g1oba1a1ias.brbranch设置提交代码时的用户信息Git用户的配置文件位于.gitconfigGit单个仓库的配置文件位于/$PROJECT_PATH/.git/config$gitconfig-g1
4、oba1user.amename$gitconfig-g1oba1ser.emai1emai1dress增删文件添加文件到暂存区$gitadd.#添加当前目录的所有修改文件到暂存区$gitadd-A#添加所有修改到暂存区$gitadd添力口指定文件至IJ暂存区$gitadd#添加指定目录到暂存区,含子目录Sgitadd-p#添加每个变化前,都会要求确认,对同一个文件的多处变化,可以实现分次提交。删除工作区文件,并且将这次删除放入暂存区$gitrmfi1e1fi1e2.停止追踪指定文件,但该文件会保留在工作区$gitrm-cachedfi1e改名文件,并且将这个改名放入暂存区$gitmvfi1e
5、-origina1fi1e-renamed分支列出所有本地分支$gitbranch列出所有远程分支$gitbranch-r列出所有本地分支和远程分支$gitbranch-a删除分支$gitbranch-dbranch-name删除远程分支$gitpushorigin-de1etebranch-name$gitbranch-drremotebrach$gitpushremote:remote-branch新建一个分支,但依然停留在当前分支$gitbranchbranch-name新建一个分支,与指定的远程分支建立追踪关系$gitbranch-trackbranchremote-branch新建一
6、个分支,并切换到该分支$gitcheckout-bnew_branchremote-branch切换到指定分支,并更新工作区$gitcheckoutbranch-name切换到上一个分支$gitcheckout一合并指定分支到当前分支$gitmergebranch选择一个commit,合并进当前分支$gitcherry-pickcommit衍合指定分支,到当前分支$gitrebasebranch建立追踪关系,在现有分支与指定的远程分支之间$gitbranch-set-upstreambranchremote-branch提交提交暂存区到仓库区$gitcommit-mmessage提交暂存区的指
7、定文件到仓库区$gitcommitfie1e1fi1e2111-mmessage提交工作区自上次COmmit之后的变化,直接到仓库$gitcommit-a区提交时显示所有diff信息$gitcommit-v使用一次新的提交,替代上一次是提交。若代码无变化,则用来改写上一次commit的提交信息$gitcommit-amend-mmessage重做上一次提交,并包括指定文件的新变化$gitcommit-amend-fi1e1fi1e2上传本地指定分支到远程仓库$gitpushremoteremote-branch拉取下载远程仓库的所有变动$gitfetchremote显示所有远程仓库$gitre
8、mote-v显示某个远程仓库的信息$gitremoteshowremote增加一个新的远程仓库,并命名$gitremoteaddremote-nameur1取回远程仓库变化,并与本地分支合并$gitpu11remotebranch取回远程仓库的变化,并与本地分支变基合并$gitpu11-rebaseremotebranch撤销撤销工作目录中所有示提交文件的修改内容$gitreset-Hardhead撤销指定的提交$gitrevert撤销指定的未提交文件的修改内容$gitcheckoutHEADfi1e退回一天前的版本$git1og-before=1days恢复暂存区的指定文件到工作区$gitc
9、heckoutfi1e恢复暂存区当前目录的所有文件到工作区$gitcheckout恢复某个commit的指定文件到暂存区和工作区$gitcheckoutcommitfi1e重置暂存区的指定文件,与上一次提交持一致,但工作区不变$gitresetfi1e重置暂存区与工作区,与上一次提交保持一致$gitreset-hard重置当前分支的指针为指定提交,同时重置暂存区,但工作区不变$gitresetcommit重置当分支的HEAD为指定Commit,同时重置暂存区和工作区,与指定Commit一致$gitreset-hardcommit重置当前HEAD为指定commit,但保持暂存区和工作区不变$gi
10、t-keepcommit新建一个commit,用于撤销指定COmmit;后者所有的变化将被前者抵消,并应用到当前分支$gitrevertcommit将未提交的变化放在暂存区(草稿)$gitstash将暂存的内容恢复到当前工作区(草稿)$gitstashpop查询查看工作区文件修改状态$gitstatus查看版本库修改记录$git1og显示提交历史,及每次提交发生更化的文件$git1og-stat搜索提交历史,根据关键词$git1og-Skeyword显示某个提交后的所有变动,每个commit占一行$git1ogtagHEAD-pretty=format:%s显示某个提交后的所有变动,其“提交说
11、明”必须符合搜索条件$git1ogtagHEAD-grepfeature显示某个文件的版本历史,包括文件改名$git1og-fo11owfi1e$gitwhatchagedfo11owfi1e显示指定文件相关的每一次diff$git1og-pfi1e显示过去5次提交$git1og-5-pretty-oe1ie显示所有提交过的用户,按提交次数排序$gitshort1og-s显示指定文件是什么人在什么时间修改过$gitb1amefi1e查看工作区文件修改具体内容Sgitdifffi1e查看暂存区文件修改内容$gitdiff-cachedfi1e查看工作区与当前分支最新commit间的差异Sgitd
12、iffHEAD查看两次提交间的差异$gitdifffirst-branchsecond-branch显示今天你写了多少行代码$gitdiff-shortstat0dayago查看某次提交具体修改内容$gitshowcommit查看某人提交记录$git1og-author=someoe显示某次提交时某文件的内容$gitshowcommit:fi1ename显示当前分支的最近几次提交$gitref1og获重版本号查看某次提交发生变化的文件$gitshow-name-on1ycommit标签列出所有本地标签$gittag基于最新提交创建标签$gittagtag-name删除标签$gittag-dta
13、g-name删除远程标签$gitpushorigin:refs/tagstagName查看标签信息$gitshowtag提交指定标签$gitpushremotetag提交所有标签$gitpushremote-tags新建一个分支,指向某个标签$gitcheckout-bbranchtag提交指定标签$gitpushremotetag远程操作下载远远程仓库的所有变动$gitfetchremote取回远程仓库的变化,并与本地分支合并$gitpu11remotebranch显示所有远程仓库$gitremote-v显示某个远程仓库的信息$gitremoteshowremote增加一个新的远程仓库,并命名$gitremoteaddshortnameur1上传本地指定分支到远程仓库$gitpushremotebranch强行推送当前分支到远程他库,即使有冲突$gitpushremote-force推送所有分支到远程仓库$