已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
新媒体实务 Git版本管理进阶 第五讲 1 2 3 工作目录 暂存区域 也叫索引文件 Git本地仓库 文件流转的三个工作区域 文件状态周期图 文件状态周期图 Untracked 未跟踪 此文件在文件夹中 但并没有加入到git库 不参与版本控制 通过gitadd状态变为Staged Unmodify 文件已经入库 未修改 即版本库中的文件快照内容与文件夹中完全一致 这种类型的文件有两种去处 如果它被修改 而变为Modified 如果使用gitrm移出版本库 则成为Untracked文件Modified 文件已修改 仅仅是修改 并没有进行其他的操作 这个文件也有两个去处 通过gitadd可进入暂存staged状态 使用gitcheckout则丢弃修改过 返回到unmodify状态 这个gitcheckout即从库中取出文件 覆盖当前修改Staged 暂存状态 执行gitcommit则将修改同步到库中 这时库中的文件和本地文件又变为一致 文件为Unmodify状态 执行gitresetHEADfilename取消暂存 文件状态为Modified 再谈暂存区和对象库 暂存区一个文件 git index对象库一个目录 git objects存放版本库的各种对象 对象 对象每个对象都是一个文件每个对象都用40位的SHA 1值标识 6ff87c4664981e4397625791c8ea3bbb5f2279a3对象类型blob 用来存储文件数据tree 有点像一个目录 它组织管理其它tree和blobcommit 保护一个指向tree的指针 标记项目某一个特定时间点的状态 包括时间撮 作者 指向上次commit的指针tag 用来标记某一次commit的方法 Git对象 blob 一个blob对象就是一块二进制数据 他没有指向任何有任何其它属性 甚至连文件名都没有对于一个gitproject 使用gitcat file pcommitID tree 可以得到commitID指向的tree blob的结构图 e g gitcat file pHEAD tree 得到是当前HEAD对应的tree blob结构如下 对于blob 使用gitshow blob对象名 可以得到文件的内容 Git对象 commit 一个commit对象包括 一个tree对象 父对象 合并的提交可能不止一个父对象 作者 修改日期 提交者 提交日期 注释可以用 pretty raw参数配合gitshow或gitlog查看commit对象先用gitlog查看提交日志 Git对象 tree tree对象一般用来表示内容之间的目录层次关系 一个tree对象包括一个条目列表 每个条目包括 mode 对象类型 SHA1值和名字所有文件的mode位都是644或755gitshow tree对象名 可以查看tree对象里面的内容gitls tree tree对象名 能看到更多细节 Git对象 tag 一个标签对象包括对象类型 commit类型 对象名 commit的SHA1值 标签名 标签创建人的名字 还可能包含有签名 signature gittagv1ebff 为提交设置标记v1 gittag dv1 删除标记版本1 Git对象模型 Git对象模型 连续commit时 每次提交的commit对象都保持一个指向一个提交对象 parent指针 Git命令 Workspace 工作区Index Stage 暂存区Repository 仓库区 或本地仓库 Remote 远程仓库 最常用命令有下面6个 Git命令 新建代码库 在当前目录新建一个Git代码库 gitinit 新建一个目录 将其初始化为Git代码库 gitinit project name 下载一个项目和它的整个代码历史 gitclone url Git命令 配置 显示当前的Git配置 gitconfig list 设置提交代码时的用户信息 gitconfig global user name name gitconfig global user email emailaddress 设置命令别名gitconfig globalalias cicommit Git命令 增加 删除文件 添加指定文件到暂存区 gitadd file1 file2 添加指定目录到暂存区 包括子目录 gitadd dir 添加当前目录的所有文件到暂存区 gitadd 添加每个变化前 都会要求确认 对于同一个文件的多处变化 可以实现分次提交 gitadd p Git命令 增加 删除文件 删除工作区文件 并且将这次删除放入暂存区 gitrm file1 file2 停止追踪指定文件 但该文件会保留在工作区 gitrm cached file 改名文件 并且将这个改名放入暂存区 gitmv file original file renamed Git命令 代码提交 提交暂存区到仓库区 gitcommit m message 提交暂存区的指定文件到仓库区 gitcommit file1 file2 m message 提交工作区自上次commit之后的变化 直接到仓库区 gitcommit a 提交时显示所有diff信息 gitcommit v 使用一次新的commit 替代上一次提交 如果代码没有任何新变化 则用来改写上一次commit的提交信息 gitcommit amend m message 重做上一次commit 并包括指定文件的新变化 gitcommit amend file1 file2 Git命令 分支 列出所有本地分支 gitbranch 列出所有远程分支 gitbranch r 列出所有本地分支和远程分支 gitbranch a 新建一个分支 但依然停留在当前分支 gitbranch branch name Git命令 分支 新建一个分支 并切换到该分支 gitcheckout b branch 新建一个分支 指向指定commit gitbranch branch commit 新建一个分支 与指定的远程分支建立追踪关系 gitbranch track branch remote branch 切换到指定分支 并更新工作区 gitcheckout branch name 切换到上一个分支 gitcheckout Git命令 分支 建立追踪关系 在现有分支与指定的远程分支之间 gitbranch set upstream branch remote branch 合并指定分支到当前分支 gitmerge branch 选择一个commit 合并进当前分支 gitcherry pick commit 删除分支 gitbranch d branch name 删除远程分支 gitpushorigin delete branch name gitbranch dr remote branch Git命令 标签 列出所有tag gittag 新建一个tag在当前commit gittag tag 新建一个tag在指定commit gittag tag commit 删除本地tag gittag d tag Git命令 标签 删除远程tag gitpushorigin refs tags tagName 查看tag信息 gitshow tag 提交指定tag gitpush remote tag 提交所有tag gitpush remote tags 新建一个分支 指向某个tag gitcheckout b branch tag Git命令 查看信息 显示有变更的文件 gitstatus 显示当前分支的版本历史 gitlog 显示commit历史 以及每次commit发生变更的文件 gitlog stat 搜索提交历史 根据关键词 gitlog S keyword 显示某个commit之后的所有变动 每个commit占据一行 gitlog tag HEAD pretty format s 显示某个commit之后的所有变动 其 提交说明 必须符合搜索条件 gitlog tag HEAD grepfeature Git命令 查看信息 显示某个文件的版本历史 包括文件改名 gitlog follow file gitwhatchanged file 显示指定文件相关的每一次diff gitlog p file 显示过去5次提交 gitlog 5 pretty oneline 显示所有提交过的用户 按提交次数排序 gitshortlog sn 显示指定文件是什么人在什么时间修改过 gitblame file Git命令 查看信息 显示暂存区和工作区的差异 gitdiff 显示暂存区和上一个commit的差异 gitdiff cached file 显示工作区与当前分支最新commit之间的差异 gitdiffHEAD 显示两次提交之间的差异 gitdiff first branch second branch 显示今天你写了多少行代码 gitdiff shortstat 0dayago 显示某次提交的元数据和内容变化 gitshow commit 显示某次提交发生变化的文件 gitshow name only commit 显示某次提交时 某个文件的内容 gitshow commit filename 显示当前分支的最近几次提交 gitreflog Git命令 远程同步 下载远程仓库的所有变动 gitfetch remote 显示所有远程仓库 gitremote v 显示某个远程仓库的信息 gitremoteshow remote 增加一个新的远程仓库 并命名 gitremoteadd shortname url Git命令 远程同步 取回远程仓库的变化 并与本地分支合并 gitpull remote branch 上传本地指定分支到远程仓库 gitpush remote branch 强行推送当前分支到远程仓库 即使有冲突 gitpush remote force 推送所有分支到远程仓库 gitpush remote all Git命令 撤销 恢复暂存区的指定文件到工作区 gitcheckout file 恢复某个commit的指定文件到暂存区和工作区 gitcheckout commit file 恢复暂存区的所有文件到工作区 gitcheckout 重置暂存区的指定文件 与上一次commit保持一致 但工作区不变 gitreset file 重置暂存区与工作区 与上一次commit保持一致 gitreset hard 重置当前分支的指针为指定commit 同时重置暂存区 但工作区不变 gitreset commit 重置当前分支的HEAD为指定commit 同时重置暂存区和工作区 与指定commit一致 gitreset hard commit 重置当前HEAD为指定commit 但保持暂存区和工作区不变 gitreset keep commit Git命令 撤销 新建一个commit 用来撤销指定commit 后者的所有变化都将被前者抵消 并且应用到当前分支 gitrevert commit 暂时将未提交的变化移除 稍后再移入 gitstash gitstashpop 恢复暂存区的指定文件到工作区 gitcheckout file 恢复某个commit的指定文件到暂存区和工作区 gitcheckout commit file 恢复暂存区的所有文件到工作区 gitcheckout Git命令 撤销 重置暂存区的指定文件 与上一次commit保持一致 但工作区不变 gitreset file 重置暂存区与工作区 与上一次commit保持一致 gitreset hard 重置当前分支的指针为指定commit 同时重置暂存区 但工作区不变 gitreset commit 重置当前分支的HEAD为指定commit 同时重置暂存区和工作区 与指定commit一致 gitreset hard commit 重置当前HEAD为指定commit 但保持暂存区和工作区不变 gitreset keep commit 新建一个commit 用来撤销指定commit 后者的所有变化都将被前者抵消 并且应用到当前分支 gitrevert commit 暂时将未提交的变化移除 稍后再移入 gitstash gitstashpop 34 35 远程仓库 Git是分布式版本控制系统 同一个Git仓库 可以分布到不同的机器上 怎么分布呢 最早 肯定只有一台机器有一个原始版本库 此后 别的机器可以 克隆 这个原始版本库 而且每台机器的版本库其实都是一样的 并没有主次之分 可以通过Github及码云实现Git仓库托管服务 这样就可以把本地仓库同步到远程仓库 实现多个用户共同管理项目代码 有了远程仓库 妈妈再也不用担心我的硬盘了 Git点读机 36 远程仓库操作步骤 1 生成并部署SSHkey2 在码云中创建远程仓库3 通过命令将本地仓库添加到远程仓库4 修改代码push到远程仓库 37 步骤1 生成并部署SSHkey 你可以按如下命令来生成sshkey ssh keygen trsa C xxxxx Generatingpublic privatersakeypair 三次回车即可生成sshkey 邮箱为你码云注册邮箱查看你的publickey 并把他添加到Git OSCSSHkey添加地址输入下面命令查看sshkey 并且选中 红色方框中的 并右键复制 cat ssh id rsa pub 38 步骤1 生成并部署SSHkey 登录码云并点击右上角头像选修改资料 找到sshkey选项 起个标题并把刚复制的sshkey粘贴进去 确定保存 39 步骤2 在码云中创建远程仓库 登录码云选项目菜单点击右下角 号创建项目 只需要项目负责人或其中一个成员创建项目 因为一个团队只需要一个项目 不需要每个成员都创建项目 输入项目名 选创建项目 40 步骤3 将本地仓库添加到远程仓库 在自己的项目文件夹中运行gitinit创建本地仓库运行下面命令将本地仓库上传到远程仓库 远程仓库地址可以在码云项目中查看 注意可切换为SSH地址 上传查看远程仓库项目和本地一样了 gitremoteaddorigingit mh0387 myapp gitgitpush uoriginmaster 41 步骤3 将本地仓库添加到远程仓库 注意如果之前已经添加过远程仓库 需要先执行gitremotermorigin移除之前的由于远程库是空的 我们第一次推送master分支时 加上了 u参数 Git不但会把本地的master分支内容推送的远程新的master分支 还会把本地的master分支和远程的master分支关联起来 在以后的推送或者拉取时就可以简化命令 推送成功后 可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样 4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年度机械设备制造修理人员真题附完整答案详解(典优)
- 2024-2025学年唐山工业职业技术学院单招《数学》题库及参考答案详解(新)
- 2024-2025学年度临床执业医师能力提升B卷题库及完整答案详解(考点梳理)
- 2024-2025学年度反射疗法师大赛理论自我提分评估带答案详解(能力提升)
- 2024-2025学年医师定期考核高分题库附答案详解(综合题)
- 2024-2025学年度中医执业医师检测卷及完整答案详解(易错题)
- 2024-2025学年度医学检验(士)能力检测试卷【重点】附答案详解
- 2024-2025学年度冶金工业技能鉴定能力提升B卷题库及答案详解(夺冠)
- 2024-2025学年度医学检验(士)过关检测试卷含完整答案详解(典优)
- 2024-2025学年度医院三基考试试题及参考答案详解【模拟题】
- 2025-2026学年苏教版小学数学四年级下册(2026修订)教学计划及进度表
- (2025年版)脊柱外科护理实践指南
- 工厂固定资产管理流程与规范
- 提高门诊患者满意度PDCA课件
- 2025-2026学年山东省德州市六校联考高三(上)期末英语试卷
- 社会救助政策培训课件
- 规范村级公章制度
- 非语言沟通技巧在开颅术后患者护理中的应用
- 安置帮教工作培训课件
- 村委会2026年度工作计划
- 成都传媒集团招聘笔试题库2026
评论
0/150
提交评论