资源描述
GIT使用培使用培训钦州市友加信息科技有限公司欢迎学习目标版本管理的作用掌握日常的操作团队协作版本管理的版本管理的作用作用为什么要版本管理?为什么要版本管理?文件管理历史追踪冲突管理版本发布团队协作协作模式锁定模型冲突合并模型常用术语分支(Branch):在一个时间点,复制一份处于版本控制之下的文件,从这之后,这两份拷贝就可以独立的互不干扰的进行各自开发。取出(Check-out):一次“取出”,就是在本地创建一份仓库的工作拷贝。提交(Commit):一次“提交”,将本地的修改写回到仓库或合并到仓库。冲突(Conflict):当开发者们同时提交对同一文件的修改,而且版本系统不能把它们合并到一起,就会引起冲突,就需要人工来进行合并。合并(Merge):合并就是把所有对文件的修改统一到文件里仓库(Repository):仓库就是当前的和历史的处于版本控制之下的文件所在的地方,通常在服务器端。工作版本(Working copy):从档案库中取出一个本地端的复制,所有在档案库中的档案更动,都是从一个工作版本中修改而来的,这也是这名称的由来。GIT介介绍GITGIT设计目标设计目标满足大足大规模模项目需要目需要快速快速简单完全完全分布分布高效高效存存储版本版本服服务器器版本库GITGIT工作模式工作模式u版本库初始化 个人计算机从版本服务器同步u操作 90%以上的操作在个人计算机 添加文件 修改文件 提交变更 查看版本历史等u版本库同步 将本地修改传送 到版本服务器Version 3Version 2Version 1计算机算机A版本库Version 3Version 2Version 1计算机算机B版本库Version 3Version 2Version 1file检出file检出GITGIT文件存储文件存储git statusgit add/rmGit commit m Git push origin mastergit pull origin mastergit fetch origin mastergit merge origin master第二部分第二部分GIT GIT 基础基础创建版本库创建版本库$mkdir learngit$cd learngit$git init第一个提交第一个提交l创建文件创建文件Readme.txtReadme.txtl使用git add命令添加Readme.txtl使用git commit提交Readme.txt千万不要使用Windows自带的记事本事本编辑任何文本文件,推荐使用sublime、editplus统一使用utf8格式修改文件修改文件1、修改Readme.txt文件,新增一行2018,发发发2、使用 git status命令了解仓库当前的状态3、$git diff readme.txt了解文件的更改情况版本回退版本回退在Git中,用HEAD表示当前版本,上一个版本就是HEAD,往上100个版本写成HEAD100。当你用$git reset-hard HEAD回退到 修改Readme.txt文件版本时,再想恢复到新增团结、努力版本,就必须找到新增团结、努力的commit id。Git提供了一个命令git reflog用来记录你的每一次命令:使用命令git reset-hard commit_id在版本的历史之间穿梭要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本工作区与缓存区工作区与缓存区1、learngit文件夹就是一个工作区(Working Directory),隐藏目录.git,这个不算工作区,而是Git的版本库(Repository),2、Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD3、第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。管理修改管理修改场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout-file。(没有执行git add之前)场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时(执行了git add,但没有git commit),想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。场景3:现在,假设你不但改错了东西,还从暂存区提交到了版本库(执行了git add,git commit m 命令),怎么办呢?可以使用版本回退,git relog git reset-hard HEAD或者git reset-hard commit_id管理删除管理删除 git status命令查看哪些文件被删除了,使用git rm 从版本库中删除文件另一种情况是删错了文件,怎么恢复场景1:当你删除了工作区某个文件的内容,想直接恢复,用命令git checkout-file。(没有执行git rm之前)场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时(执行了git rm,但没有git commit),想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。场景3:现在,假设你不但改错了东西,还从暂存区提交到了版本库(执行了git rm,git commit m 命令),怎么办呢?可以使用版本回退,git relog/git log git reset-hard HEAD或者git reset-hard commit_idrest关联远程版本服务器关联远程版本服务器一、方式一、方式1 11 1、在本地、在本地gitgit init init 新建版本库新建版本库2 2、在远程新建版本数据库关联远程、在远程新建版本数据库关联远程 3 3、关联、关联gitgit remote add origin remote add origin 项目地址项目地址4 4、推送、推送gitgit push-u origin master push-u origin master到远程版本服务器到远程版本服务器二、方式二、方式21、在远程新建版本数据库关联远程在远程新建版本数据库关联远程 2 2、gitgit clone clone 项目地址项目地址 本地目录(可以默认不写)本地目录(可以默认不写)远程协作(一)远程协作(一)l创建文件创建文件Readme.txtReadme.txtl使用git add命令添加Readme.txtl使用git commit提交Readme.txt至本地版本库xtl使用git push保存Readme.txt到服务器版本地本地计算机算机版本库Version mVersion Version 1file本地版本库与服务器版本库(一)本地版本库与服务器版本库(一)版本版本服服务器器版本库Version 3Version 2Version 1本地本地计算机算机版本库Version 3Version 2Version 1file检出git add、commitgit pushgit pull版本版本服服务器器版本库Version mVersion Version 1版本版本服服务器器版本库Version xVersion Version 1本地本地计算机算机版本库Version mVersion Version 1本地版本库与服务器版本库(二)本地版本库与服务器版本库(二)版本版本服服务器器版本库Version 3Version 2Version 1本地本地计算机算机版本库Version 3Version 2Version 1git add、commitgit pushgit pull版本版本服服务器器版本库Version nVersion Version 1git pushgit pull本地本地计算机算机版本库Version xVersion Version 1远程协作(二)远程协作(二)l修改修改Readme.txtReadme.txtl使用git add命令添加Readme.txtl使用git commit提交Readme.txtl使用git pull获取服务器版本库更新l使用git push将Readme.txt保存至版本服务器GITGIT常用命令常用命令l获得版本库pgit initpgit clonel版本管理版本管理pgit addpgit rmpgit commitl远程协作远程协作pgit pullpgit pushl查看信息查看信息pgit helppgit logpgit diff第三部分第三部分分支管理分支管理分支分支1、创建分支:git branch 2、切换分支:git checkout 3、git checkout-b(等于前面两部)4、删除分支:git branch d 5、合并分支 git merge 6、查看分支git branch7、查看合并情况git log-graph-pretty=oneline-abbrev-commit冲突冲突l冲突:冲突:修改了两个待合并分支里同一个文件的同一部分(比如同一行)第四部分第四部分团队协作团队协作远程版本库远程版本库l管理管理pgit clone:生成一个叫orgin的远程版本库pgit remote v:查看远程版本库信息pgit remote add :指定版本库名字l路径路径p.git/refs/remotes/git push origin master远程分支远程分支l路径路径p.git/refs/remotes/l访问方式访问方式p/:origin/masterl跟踪分支(跟踪分支(tracking branch)pgit checkout/pgit checkout b /从远程版本库抓取数据从远程版本库抓取数据lgit fetch remote repo namepgit fetch=git fetch originp从远程仓库中拉取本地仓库中还没有的数据(所有分支)p需要执行git checkout跟踪远程分支,从而产生本地分支再谈再谈克隆克隆版本库版本库lgit clone pgit init pgit remote add origin pgit fetch originpgit checkout origin/master推送数据给远程版本库推送数据给远程版本库lgit push remote repo name branch namep将本地分支推送给的分支lgit pushp如果当前分支为跟踪分支,则推送至其跟踪的远程分支p否则=git push origin,将当前分支推送给origin,在origin上的分支名称与当前分支名称相同本地本地计算机算机版本库masterbranch1 gitgit pullpull版本版本服服务器器版本库masterbranch1 branch2 本地分支远程分支masterBranch1 branch2 git fetchgit mergegit checkout mastergit pullgit mergegit checkout branch1git pull删除远程分支删除远程分支lgit push:.gitignore忽略跟踪文件 以#开始的行,被视为注释.忽略掉所有文件名是 foo.txt 的文件.foo.txt 忽略所有生成的 html 文件,*.html 例外.!foo.html 忽略所有.o 和.a文件.*.oa 忽略指定文件夹 runtime/提提问问?
展开阅读全文