git分布式版本控制工具

  • 1、版本控制器的方式
  • 2、Git常用命令
  • 3、基础操作指令
    • 3.1 查看修改的状态
    • 3.2 添加工作区到暂存区
    • 3.3 提交暂存区到本地仓库
    • 3.4 查看提交日志
    • 3.5 版本回退
  • 4、分支
    • 4.1 基本指令
    • 4.2 解决冲突
    • 4.3 开发中分支使用原则
  • 5、Git远程仓库
    • 5.1 添加远程仓库
    • 5.2 查看远程仓库
    • 5.3 推送到远程仓库
    • 5.4 本地分支和远程分支的关系
    • 5.5 从远程仓库克隆
    • 5.6 从远程仓库中抓取和拉取

1、版本控制器的方式

a、集中式版本控制工具
集中式版本控制工具,版本库是集中存放在中央服务器的,team里每个人work时从中央服务器下载代码,是必须联网才能工作,局域网或互联网。个人修改后然后提交到中央版本库。
举例:SVN和CVS
b、分布式版本控制工具
分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样工作的时候,无需要联网了,因为版本库就在你自己的电脑上。多人协作只需要各自的修改推送给对方,就能互相看到对方的修改了。
举例:Git

2、Git常用命令

指令 说明
ls/ll 查看当前目录
cat 查看文件内容
touch 创建文件
vi vi编辑器
  • Git GUI:Git提供的图形界面工具
  • Git Bash:Git提供的命令行工具

3、基础操作指令

Git工作目录下对于文件的修改(增加、删除、更新)会存在几个状态,这些修改的状态会随着我们执行Git的命令而发生变化。

  • git add (工作区—>暂存区)
  • git commit (暂存区—>本地仓库)

3.1 查看修改的状态

  • 作用:查看修改的状态(暂存区,工作区)
  • 命令形式:git status

3.2 添加工作区到暂存区

  • 作用:添加工作区的一个或多个文件的修改到暂存区
  • 命令形式:git add . (将所有修改加入暂存区)

3.3 提交暂存区到本地仓库

  • 作用:提交暂存区内容到本地仓库的当前分支
  • 命令形式:git commit -m'注释内容'

3.4 查看提交日志

  • 命令形式:git log [option]
options 说明
--all 显示所有分支
--pretty=oneline 将提交信息显示为一行
--abbrev-commit 使得输出的commitld更简单
--graph 以图的形式显示

3.5 版本回退

  • 作用:版本切换
  • 命令形式:git reset --hard commitID
  • 可通过 git reflog查看已经删除的提交记录

4、分支

几乎所有的版本控制系统都以某种形式支持分支。使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的Bug修改、开发新的功能,以免影响开发主线。

4.1 基本指令

命令 功能
git branch 查看本地分支
git branch 分支名 创建本地分支
git checkout 分支名 切换分支
git checkout -b 分支名 创建并切换
git merge 合并分支
git branch -d b1 删除分支,需要做检查(不能删除当前分支)
git branch -D b1 不做任何检查,强制删除

4.2 解决冲突

当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解决冲突,解决冲突步骤如下:

  1. 处理文件中冲突的地方
  2. 将解决完冲突的文件加入暂存区(add)
  3. 提交到仓库(commit)

4.3 开发中分支使用原则

几乎所有的版本控制系统都以某种形式支持分支。使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的Bug修改、开发新的功能,以免影响开发主线。

在开发中,一般有如下分支使用原则与流程:

  • master(生产)分支
    线上分支,主分支,中小规模项目作为线上运行的应用对应的分支;
  • develop(开发)分支
    是从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到master分支,准备上线。
  • featurelxxxx分支
    从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到develop分支。
  • hotfix/xxxx分支
    从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、develop分支。
  • 还有一些其他分支,在此不再详述,例如test分支(用于代码测试)、pre分支(预上线分支)等等。

5、Git远程仓库

5.1 添加远程仓库

命令git remote add <远端名称> <仓库路径>

  • 远端名称,默认是origin,取决于远端服务器设置。
  • 仓库路径,从远端服务器获取此URL

5.2 查看远程仓库

命令git remote

5.3 推送到远程仓库

命令: git push [-f] [--set-upstream][远端名称[本地分支名][:远端分支名]]

  • -f 表示冲突时强制覆盖
  • 如果远程分支名和本地分支名称相同,则可以只写本地分支
    git push origin master
  • --set-upstream 推送到远端的同时并且建立起和远端分支的关联关系。
    git push --set-upstream origin master
  • 如果当前分支已经和远端分支关联,则可以省略分支名和远端名。
    git push将master分支推送到已关联的远端分支。

5.4 本地分支和远程分支的关系

  • 查看关联关系我们可以使用 git branch -vv 命令

5.5 从远程仓库克隆

如果已经有一个远程仓库,我们可以直接clone到本地

  • 命令:git clone <仓库路径>[本地目录]

    • 本地目录可以省略,会自动生成一个目录

5.6 从远程仓库中抓取和拉取

远程分支和本地的分支一样,我们可以进行merge操作,只是需要先把远端仓库里的更新都下载到本地,再进行操作。

  • 抓取 命令:git fetch [remote name] [branch name]

    • 抓取命令就是将仓库里的更新都抓取到本地,不会进行合并
    • 如果不指定远端名称和分支名,则抓取所有分支
  • 拉取 命令:git pull [remote name] [branch name]
    • 拉取命令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge
    • 如果不指定远端名称和分支名,则抓取所有并更新当前分支

【git学习】git项目管理工具相关推荐

  1. Git学习-Git时光机之版本回退(二)

    Git,是Linus花了两周时间用C写的一个分布式版本控制系统.牛人该怎么定义? 零.结论先行 倒叙总结一下: HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git ...

  2. git学习——Git 基础要点【转】

    转自:http://blog.csdn.net/zeroboundary/article/details/10549555 简单地说,Git 究竟是怎样的一个系统呢?请注意,接下来的内容非常重要,若是 ...

  3. Git学习——Git基本工作原理(入门级教程,通过玩转Git本地仓库,帮助新手快速入手Git)

    如果你只是想知道如何用Git上传代码至托管平台,请看:创建码云仓库并完成第一次上传(https) 及 使用ssh协议上传代码 如果你想了解Git本地仓库的工作原理,欢迎阅读本文. 文章目录 一.分区及 ...

  4. Hbuilder X 配置Git、SVN项目管理工具

    团队开发 是一个项目组不可缺少合作模式 现在说说前端开发 编译工具Hbuilder X如何配置svn.以及git Hbuilder X不像VS code 那样直接就集成了git的管理插件 大家都知道 ...

  5. Git学习 - git commit检查以及跳过检查

    钩子 钩子都被存储在 Git 目录下的 hooks 子目录中. 也即绝大部分项目中的 .git/hooks . 当你用 git init 初始化一个新版本库时,Git 默认会在这个目录中放置一些示例脚 ...

  6. mzy git学习,初识git(一)

    GIT学习 git工作区.暂存区.本地库.远程库 工作区:实际上我们工作的地方,进行写代码或者文件的地方. 暂存区:我们执行了git add 操作之后,就会被提交到暂存区. 本地库:其实最后我们需要执 ...

  7. 【git学习】SVN项目迁移到Git操作指南

    2017年6月份的时候,我就着手在公司推广git,首先我自己尝试搭建了GitLab来管理代码,并且通过以下博客记录了GitLab的搭建,以及GitLab备份,GitLab升级等事情. git学习--- ...

  8. GIT项目管理工具(part1)--简介及概念

    本系列BLOG为鄙人学习GIT时的学习笔记.前一个知识点引出后一个知识点,后一个例子接着前一个例子. 文章目录 GIT简介 基本概念 导航 系列文章目录 GIT简介 什么是GIT(项目管理工具) gi ...

  9. git使用大全,强大的项目管理工具

    一.前言 作为一个合格的猿,SVN的使用相信大家已经非常熟悉了,GIT作为一个强大的版本控制工具,也是非常有必要深入学习的.对比两个工具,说说GIT的优缺点: 优点:1.GIT拥有全世界的资源,大部分 ...

  10. 项目管理工具之Git/GitHub/Gitee/Gitlab

    一 Git 概述 Git 是一个免费的.开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目. Git 易于学习,占地面积小,性能极快. 它具有廉价的本地库,方便的暂存区域和多个工作流分 ...

最新文章

  1. xml提示无法连接到远程服务器,异步调用WebService时,如何捕捉“无法连接远程服务器”异常...
  2. 读博前三年0文章,后期发力一口气11篇一作!这个“90后”现任职985博导
  3. 【读】这一次,让我们再深入一点 - UDP协议
  4. python库管理_多版本python控制以及python三方库管理
  5. mysq对存在null值的字段排序
  6. C++ leetcode 19. 删除链表的倒数第N个节点 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
  7. 经典DL论文研读(part1)--Understanding the difficulty of training deep feedforward neural networks
  8. python for循环连续输入五个成绩判断等级_Python条件循环判断
  9. 开源web应用防火墙 - Naxsi
  10. 服务器图片加载慢_页面提高性能利器_懒加载
  11. 【iOS】Illegal Configuration: The Label outlet from the ViewController to the UILabel is invalid. Outl
  12. APACHE 在windows下的配置
  13. 渠道类:新APP上线都有哪些具体的推广方式可以学习(最新)
  14. wifi信号桥怎么设置_用手机怎么桥设置桥接无线路由器?(步要祥细)
  15. ALU计算机专业术语,计算机专业术语大全
  16. dcos master挂掉后 slave上面的container会咋样
  17. html打开txt文件 乱码怎么解决,txt文件打开显示乱码怎么办?
  18. 分享几个有意思的游戏
  19. 铨顺宏RFID:服饰行业和店铺管理与解决方法是如何利用RFID技术
  20. 82c55单片机c语言,8255/82C55中文资料简介

热门文章

  1. 计算机网络综合布线课设,中职计算机网络综合布线课程改革与思考
  2. vos对接ims光猫
  3. Java面向对象封装和继承,java实现即时通讯的架构
  4. GAMBIT、ICEM、HYPERMESH耦合面的处理方法
  5. iOS崩溃日志 如何看
  6. Video Copilot VCReflect for Mac/win (AE倒影插件) 支持2022多帧渲染​
  7. 草根站长胖子讲述做站故事
  8. 仿美团酒店预订的html模板,jQuery手机端仿美团酒店预订日期选择插件
  9. 中国上市公司2001-2020年历史股票数据下载(获得方式见网页 http://yanzw.cn )
  10. 华为OJ 初级:等差数列