文章目录

  • 1.分布式版本控制和集中式版本控制区别
  • 2.工作区和暂存区
  • 3.常用命令
    • 3.1冲突解决
    • 3.2分支学习
    • 3.3其它
  • 4.码云连接配置

  什么是“版本控制”?我为什么要关心它呢? 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。 对保存着软件源代码的文件作版本控制,但实际上,你可以对任何类型的文件进行版本控制。

1.分布式版本控制和集中式版本控制区别

  集中式版本控制系统,版本库是集中存放在中央服务器的,你干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。集中式版本控制系统最大的弊端就是必须联网才能工作,如果在局域网内还好,速度够快,可如果在互联网上,遇到网速慢的话,可能提交个10M的文件就需要5分钟,这还不得把人给憋死啊。

  分布式版本控制系统,根本没有“中央服务器”,每个⼈的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个认电脑上都有个完整的版本库,那多个人如何协作呢?比如说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到 对方的修改了。和集中式版本控制系统相比,分布式版本控制系统的安全性要好很多,因为每个电脑里都有完整的版本库,某个人的电脑坏掉了不要紧,而集中式版本控系统的中央服务器要是出了问题,所有人都没法干活了。

2.工作区和暂存区

  工作区(Working Directory):就是你在电脑⾥能看到的目录。
  版本库(Repository):工作区有个隐藏目录“.git”,这个不算工作区,而是Git的版本库,Git的版本库存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们主动创建的第一个分支master,以及指向master的一个指针叫HEAD。
  我们把文件往Git版本库中添加的时候,是分两步执行的:第一步是用“git add”把文件添加进去,实际上就是把文件修改添加到暂存区;第二步 是用“git commit”提交更改,实际上就是把暂存区的所有内容提交到当前分支。因为我们创建Git版本库时,Git主动为我们创建了唯一一个master分支,所以,现在commit就是往master分支上提交更改。你可以简单理解为,需要提交的⽂件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

3.常用命令

创建hi.txt
$ git add hi.txt                    #暂存单个文件
$ git add ./*                       #批量暂存当前目录下所有内容
$ git status                        #查看文件状态
$ git commit -m "test"              #提交
[master (root-commit) e522732] test1 file changed, 1 insertion(+)create mode 100644 hi.txt
$ git status                        #查看文件状态$ git diff hi.txt #更新文本呢内容

3.1冲突解决

  a和b同时修改同一个文件的同一行代码就会产生冲突,如果a先push,那么b在push的时候就会报错。所以,为了保险起见,只要想向服务端push内容,首先需要pull内容,pull下来之后就会将服务端的代码和本地的代码进行合并,如果有冲突,就会显示冲突(git diff),如果没有冲突,那就合并成功,然后再push上去即可,如果有冲突,商量解决冲突即可

git pull    #下拉文件
git diff    #查看冲突

3.2分支学习

主分支:master,默认分支
新建分支: git branch 分支名
查看分支: git branch
切换分支: git checkout 分支名
(实际项目中,每个人都要在自己的分支上工作,最后再合并到如果要在master
上面合并分支,需要先切回到master(master是默认的主目录)合并分支: git merge +分支名字
删除分支:git branch -d +分支名
(如果分支没有合并不能删除)
强制删除: git branch  -D +分支名字
(如果分支没有合并要删除可以使用)

3.3其它

git init    =====  建仓库, 初始化Git仓库
git add 说明.txt  =====     把文件(这里指“说明.txt")纳入暂存区(还没有真正纳入版本控制,需要再一步确认)
git status =======查看暂存区状态
git commit  -m '...'  提交纳入仓库(要写原因所以要加 -m)====git commit  -m  "说明内容"注意:第一次提交需要先提交姓名和邮箱,否则会报错
git log  ===== 查看提交日志
git checkout  - -  ====删除文件还原:
git reset  -- hard     =====版本号码(至少写五位)       回到历史版本号版本
git reflog    =======   回到删除的未来版本(过去将来时)
git rm --cashed +文件名 撤销删除文件( 内容已经放到暂存区了,把删除的文件撤销删除,从暂存区拿回)
git checkout – hello.txt 工作区写的文件b还没有放到暂存区,把暂存区文件a拿回来回到工作区,用暂行区内容a覆盖工作区内容b(注意双连接线两侧的空格)

4.码云连接配置

https://www.cnblogs.com/hebau-may/p/6382743.html

Git-软件版本控制-分支控制-多人协作编辑相关推荐

  1. Git版本控制\远程开发\多人协作

    Git版本控制\远程开发\多人协作 前言 你将学到 版本控制 版本控制两大主流类型 专业术语 Git的使用 基本配置 创建自己的仓库:init/clone仓库, 本地代码与云端仓库实现同步 工作区到暂 ...

  2. git命令及git合并分支进行多人协作

    git命令及git合并分支进行多人协作 git命令大全 git的工作区.暂存区.本地仓库和远程仓库 git常用命令 git revert 和 git reset的区别 修改默认分支 合并分支 Git分 ...

  3. 如何多人协作编辑文档

    最近许多人私信留言在问我ONLYOFFICE多人协作编辑文档是怎么做到的,我来不及每个人都回复,所以写了个文章给大家简单介一下ONLYOFFICE多人协作的功能,接下来是我个人的使用指南,请大家仔细阅 ...

  4. git如何利用分支进行多人开发

    在使用git时,假如远程仓库有 dev 和 master 两个分支,master 作为一个稳定版分支,可用于直接发布产品,日常的开发则 push 到 dev 分支,那本地是不是要从 dev 分支中创建 ...

  5. python使用git进行版本控制-分支管理

    1.远程克隆 最好的方式是先创建远程库,然后,从远程库克隆: 首先在github上创建一个新的仓库,名字叫gitskills 我们勾选Initialize this repository with a ...

  6. python共享文件协同编辑_那些可多人协作编辑的在线文档工具

    最近使用了下石墨文档,简直就是在线版的Word,Excel,PPT,而且可以多人实时编辑预览,真的太好用了,搜索了下发现这种在线文档工具还挺多的,这里做个整理推荐. 石墨文档 这个很多人应该都用过,石 ...

  7. activiti 文档_那些可多人协作编辑的在线文档工具

    最近使用了下石墨文档,简直就是在线版的Word,Excel,PPT,而且可以多人实时编辑预览,真的太好用了,搜索了下发现这种在线文档工具还挺多的,这里做个整理推荐. 石墨文档 这个很多人应该都用过,石 ...

  8. 那些可多人协作编辑的在线文档工具

    最近使用了下石墨文档,简直就是在线版的Word,Excel,PPT,而且可以多人实时编辑预览,真的太好用了,搜索了下发现这种在线文档工具还挺多的,这里做个整理推荐. 石墨文档 这个很多人应该都用过,石 ...

  9. 腾讯在线文档发布:实现QQ、微信多平台多人协作编辑

    18日,腾讯宣布推出专注多人协作的在线文档产品-腾讯文档,据介绍,腾讯文档是一款支持随时随地创建.编辑的多人协作式在线文档工具,拥有一键翻译.实时股票函数和浏览权限安全可控等功能,以及打通QQ.微信等 ...

最新文章

  1. python操作系统-python获取操作系统平台、版本及架构
  2. linux编程:getenv,putenv,setenv
  3. MySQL(3)数据库用户管理
  4. CoreJava 笔记总结-第七章 异常,断言和日志
  5. 自己写的几个常用到的函数
  6. android 跳转系统通知,android 跳转到应用通知设置界面
  7. MFC工作笔记0007---消息映射处理
  8. BERT模型实战之多文本分类(附源码)
  9. 神经网络开始设计字体,可根据“矢量字体”变换大小写
  10. 【优化算法】阿基米德优化算法(AOA)【含Matlab源码 1447期】
  11. 牛逼程序猿的学习之路
  12. 英特尔核显驱动hd630_英特尔首款独显 Xe Max 评测出炉:低于移动端 GTX 1050 Ti
  13. linux连ftp超时,ftp上传超时的一种解决方案
  14. 1024购书狂欢节,优惠券送给有需要的伙伴们
  15. 少即是多:视觉SLAM的点稀疏化(IROS 2022)
  16. Vue动态修改网页浏览器标签的标题和图标
  17. 计算机应用计算题(88)10,2018一级结构工程师《计算机应用基础》题库及答案(十)...
  18. 无需更新硬件的“新一代智能布线管理解决方案”
  19. 两次参加中国大学生服务外包大赛的感悟
  20. 树莓派集成Hx711称重传感器demo

热门文章

  1. 到美国去,挣美元!-2000年10月-年程序员杂志-试刊1
  2. python扫描文件代码
  3. 下列不是python数据类型的是_python不支持的数据类型有
  4. 电脑越来越慢怎么办?
  5. 【网盘】无论是云计算SaaS,PaaS还是IaaS,拼的都是运维!| 燕麦企业云盘
  6. MVC辅助器方法之内联、外部辅助器方法
  7. 使用.pyc来加密python代码
  8. Python - 计算个人所得税
  9. 2022起重机司机(限门式起重机)特种作业证考试题库模拟考试平台操作
  10. proteus画完图怎么保存_proteus怎么把电路图完整的导出来,导到WORD中。