一、Git分布式控制系统原理:
git有三个区,被管理的代码或文件是从:工作区-->暂存区-->本地版本库。

二、GitHub创建线上仓库
GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名:GitHub,GitHub的操作很简单,就一个建库操作。

1.注册GitHub账号,网址为:https://github.com

注册详见Git第一篇:https://blog.csdn.net/pengjiangchun/article/details/105305855

2.新建GitHub库。

从右上角登录的用户名中选择:"您的存储库"进入到存储库列表页面,如下图所示:

点击"新"按钮后如下图:

点击"创建仓库"按钮完成仓库的创建。

如果你觉得此文对你有帮助,如果你对此文有任何疑问,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣都可以加入软件测试技术群:695458161,群里发放的免费资料都是笔者十多年测试生涯的精华。还有同行一起交流哦。

三、Git分布式控制系统使用命令:
1、先从Git服务器上克隆完整的Git仓库到本地(包括代码和版本信息)

(1)在桌面新建一个文件夹repo,进入后,右击选中"Git Bash Here",

输入命令:git clone https://github.com/pengjiangchun/test.git

其中:https://github.com/pengjiangchun/test.git 为创建的线上仓库的地址

命令解释:"git clone"的功能是将项目Git库复制到本地当前目录中。出现一个test仓库,进入test仓库后,查看隐藏文件,发现如下结构:分为版本库和工作区。

如:加上-b master则命令如下:

git clone -b master https://github.com/pengjiangchun/test.git

"-b master"参数是执行当前clone为master分支的内容。

2、将本地新增文件上传到Git库。

(1) 在test文件夹新建一个本地文件:可以直接新建,也可以使用vi命令创建。

可以使用Linux命令:vi a.txt 保存退出。

然后输入git status命令当前库的改动。会列出所有的改动,包括新增、修改、删除等改变的文件。如下图所示:

(2) 向服务器更改(添加、删除、编辑)文件。

a.如果要添加或更改文件但不包括删除的文件:则使用命令:git add a.txt

b.如果只编辑文件或删除文件但不包括新添加的文件,则使用命令:git add -u

c.如果要上传当前所有的改动,则使用命令:git add -A (多文件用这种)

以上代码运行之后,文件就从工作区添加到了暂存区,可以进入.git包发现其中多了一个文件index,这个文件就是暂存区文件。

(3) 把暂存区的内容提交到本地版本库:此步骤需要添加注解。用于说明提交的目的和用途等事项。

命令如下:git commit -m '第一次提交' -m是注解。

每次提交时都出现如下提示:要求设置使用者的身份。解决方案有两种:

第一种:增加单独的用户和邮箱,命令如下:(这种每次都要设置)

git config user.name "您的用户名"

git config user.email "你的电子邮箱"

第二种:设置全局的,这种在同一个库中只需要设置一次。一劳永逸。

进入.git版本库文件,找到config文件。使用notepad++打开,加入如下内容:

[user]

name = 您的用户名

email = 您的邮箱

当全局和单独的都存在时,默认使用单独的。

解决后再次输提交:git commit -m '第一次提交'

(4) 再次使用git status查看,没有有用信息,需要使用git log查看操作日志。如下:

其中:commit f0646ad...为版本号。是一个hash码,可以在版本库中的如下地址找到:C:\Users\Administrator\Desktop\repo\test\.git\objects\f0\646ad...

(5) 使用vi命令修改a.txt文件的内容。再次使用git status查看状态,状态为modified

(6) 再次添加和提交到本地版本库:

git add a.txt

git commit -m '第二次提交'

(7) 回退到指定版本命令:

回退到指定版本:git reset --hard 版本号 (如:f0646ad,最少可以使用4位。多位也没关系,版本号由git log获取)

(8) 提交到github。这里会弹出一个窗口要求登录,然后需要等待一段时间。

git push

(9) 协同工作时如何解决冲突。

分张三和李四去操作同一个文件a.txt时。当本地版本高于GitHub版本提交时发生

解决步骤如下:

a、合并

(1)提交之前先合并,使用命令:git pull (不是同一行可以自动合并,只针对纯文本文件,是同一行时会把不同的记录在都记录在文件中。去掉不需要的内容)

(2)使用合并工具:git mergetool 中间输入一个a

b.增加:git add -A

c.提交:git commit -m '解决冲突'

d.上传:git push

git原理,git命令使用详解,github使用 --有此图文并茂原来如此简单的更多相关文章

  1. 【Git版本控制】git中reset命令的详解

    git reset 命令详解(一) git reset 命令详解(二) reset命令的语法:git reset [选项]  [版本号]  [要回退的目标] 选项:--soft仅将head指针指向历史 ...

  2. Git合并分支命令参数详解:git merge --ff

    今天研究了一下git merge命令常用参数,并分别用简单的例子实验了一下,整理如下: 输入命令git merge -h可以查看相关参数: --ff  快速合并,这个是默认的参数.如果合并过程出现冲突 ...

  3. Ubuntu下Git从搭建到使用详解

    Ubuntu下Git从搭建到使用详解 一.git的搭建 (1).sudo apt-get update (2).sudo apt-get -y install git 符:安装最新版本方法: add- ...

  4. Git学习系列之Windows上安装Git详细步骤(图文详解)

    前言 最初,Git是用于Linux下的内核代码管理.因为其非常好用,目前,已经被成功移植到Mac和Windows操作系统下. 鉴于大部分使用者使用的是Windows操作系统,故,这里详细讲解Windo ...

  5. git概念及工作流程详解

    git概念及工作流程详解 既然我们已经把gitlab安装完毕[当然这是非必要条件],我们就可以使用git来管理自己的项目了,前文也多多少少提及到git的基本命令,本文就先简单对比下SVN与git的区别 ...

  6. 详解Github的.gitignore忽略文件+.gitignore不生效解决方案+生产配置大奉送

    详解Github的.gitignore忽略文件+.gitignore不生效解决方案+生产配置大奉送 Git中有一个非常重要的一个文件-----.gitignore 今天给大家免费送一个.gitigno ...

  7. 3.3、Ansible命令参数详解

    0.ansible 命令参数详解: [root@localhost ~]# ansible Usage: ansible <host-pattern> [options] Options: ...

  8. Android辅助功能原理与基本使用详解-AccessibilityService

    辅助功能原理与基本使用详解 本文主要介绍辅助功能的使用 辅助功能基本原理 辅助功能基本配置和框架搭建 辅助功能实战解析 辅助功能基本原理   辅助功能(AccessibilityService)其实是 ...

  9. lsof 命令用法详解

    lsof 命令用法详解 作用 用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP.UDP).找回/恢复删除的文件.是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所 ...

随机推荐

  1. 提高开发效率之VS Code基础配置篇

    背景 之前一直是只用WebStorm作为IDE来编写代码,但是由于: 手中的这台Mac接了两个显示器以后,使用WebStorm会有卡顿. WebStorm需要付费(虽然可以通过某方法和谐). 所以需要 ...

  2. html/css系列 BFC

    本文详情:https://www.cnblogs.com/chen-... 第一种 BFC中的盒子对齐 <div class="container"> <div ...

  3. 关于使用Binlog和canal来对MySQL的数据写入进行监控

    先说下Binlog和canal是什么吧. 1.Binlog是mysql数据库的操作日志,当有发生增删改查操作时,就会在data目录下生成一个log文件,形如mysql-bin.000001,mysql ...

  4. 进程,线程,Event Loop(事件循环),Web Worker

    线程,是程序执行流的最小单位.线程可与同属一个进程的其他线程共享所拥有的全部资源,同一进程中的多个线程之间可以并发执行.线程有就绪,阻塞,运行三种基本状态. 阮一峰大神针对进程和线程的类比,很是形象: ...

  5. JavaFX之FXML+CSS创建窗体以及透明窗体添加阴影

    前言 开通博客园有一段日子了,一直没空也没想好该写点什么.最近正好在做一个桌面程序,初次接触JavaFX,体验下来确实比swing好用不少.索性便记记学习笔记吧,虽然FX好像挺没存在感,没人用的感觉. ...

  6. vue中数据请求的三种方法

    注意请求可能存在跨域问题,需要去配置好 这三种建议使用axios 1.resource Vue 要实现异步加载需要使用到 vue-resource 库. Vue.js 2.0 版本推荐使用 axios ...

  7. Java并发编程(02):线程核心机制,基础概念扩展

    本文源码:GitHub·点这里 || GitEE·点这里 一.线程基本机制 1.概念描述 并发编程的特点是:可以将程序划分为多个分离且独立运行的任务,通过线程来驱动这些独立的任务执行,从而提升整体的效 ...

  8. Hadoop集群搭建(五)~搭建集群

    继上篇关闭防火墙之后,因为后面我们会管理一个集群,在VMware中不断切换不同节点,为了管理方便我选择xshell这个连接工具,大家也可以选择SecureCRT等工具. 本篇记录一下3台机器集群的搭建 ...

  9. 记一次Maven发布Jar包中文乱码解决方法

    Maven deploy 乱码 今天使用Maven发布Jar包时,发布功能都是正常的也成功上传到了仓库,就是项目跑越来后出中文中现了乱码: { "code": "SUCC ...

  10. 大数据安装之Kafka(用于实时处理的消息队列)

    一.安装部署kafka 1.集群规划 hadoop102                                 hadoop103                          hado ...