zoukankan      html  css  js  c++  java
  • Git的基本操作--本地仓库的操作(一)

    第一part:版本控制


    版本控制系统实际主要由两大类:集中式、分布式

    集中式:SVN

    集中式就是必须存在一个中央控制器(中央服务器:用于进行存储历史版本和代码信息),无论是个人管理代码或者是团队协作管理,只要使用SVN的话则必然存在中央服务器,弊端:

    1.需要联网才能够实现历史版本的操作,或者完成一系列连接操作才能够实现版本回退操作

    2.中央服务器一旦崩溃,则有可能整个项目结束(当然一般公司都会考虑此种风险,设置备份服务器)

    3.svn的两个核心操作上传、下载:都是基于文件传输方式完成的(速度会很慢)

    分布式:Git

    Git是目前世界上最先进的分布式版本控制系统。Git 是一个开源的分布式版本控制软件,用以有效、高速的处理从很小到非常大的项目版本管理。Git 最初是由Linus Torvalds设计开发的,用于管理Linux内核开发。优点:   

     1.适合分布式开发,强调个体

     2.中央服务器压力和数据量不会太大
     3.速度快、灵活,使用文件流的形式进行传输内容
     4.离线工作,任意两个开发者之间可以很容易解决冲突


    第二part:Git的个人代码管理过程


    1.git的安装:

    直接在官网https://git-scm.com/,直接下载进行下一步下一步的安装即可

    2.创建仓库

    本地仓库:repository,又称之为版本库。

    当我们需要让Git去管理某个新项目/已存在项目的时候,就需要创建仓库了。注意,创建仓库时使用的目录不一定要求是空目录,选择一个非空目录也是可以的。
    注意:为了避免在学习或使用过程中出现各种奇葩问题,请不要使用包含中文的目录名(父目录亦是如此)。

    3.仓库初始化

    使用指令:git init

    执行git init指令完成仓库的初始化操作。初始化成功之后会生成一个隐藏的目录.git,这个目录是Git进行创建,也表示当前目录是一个git仓库,不能够删除以及随意修改其中的内容。

     当然,在实现工作区的初始化操作时,可以直接选择需要初始化的目录右键选择git bash进入执行上述命令即可。如果是在其他目录下进行右键git bash的话,需要对其他目录进行工作区初始化操作,则需要涉及切换目录的操作,并且在这里注意,切换目录是linux状态,所有盘符都是在根目录下的,不能够使用windows的路径表示,例如如下:


    第三part:配置Git


    1.初次使用git的时候,你必须要配置git的用户信息,用户名和邮箱地址,设置的是全局变量,使用git  config --global 配置项  配置项的值

    注意:配置了全局信息后,会在本地用户目录下生成一个.gitconfig文件,后期的配置既可以使用命令配置也可以直接修改该配置文件

     user.name的值为自己的用户名

    user.email的值为自己注册git使用的邮箱

    2.使用 git config --global --list 命令,查看全局配置信息

    3.使用命令进行配置:git config --global --edit进行修改,与linux的vim操作一致:

    4.使用命令删除一个配置项:git config --global --unset 需要删除的配置项名称 


    第四part:Git的基本指令 


     1.查看当前状态:git status

     2.将工作区文件添加到缓存区:git add 文件名

    如果存在多个文件添加的话,则可以使用以下几种语法完成操作
    语法1:git add 文件名1 文件名2 文件名3.....
    语法2:git add .
    语法3:git add -A
    语法4:git add *
    如果需要指定后缀则*.后缀名即可;如果需要添加整个文件夹,则使用git add 文件夹名称

     3.如果需要将暂存区中的文件进行删除的话:git rm --cached 文件名 (从暂存区回到工作区)

     

     4.将缓存区的文件提交到版本库:git commit -m "注释",提交成功之后则生成对应的历史版本

    注意:在这里提交版本时,初次使用git的话会提示你需要配置git的用户信息,主要需要配置用户名和邮箱地址。

     5.查看历史版本:git log

    6.通过版本号进行回退操作: git  reset  --hard  需要回退到的历史版本号

    历史版本号通过git log进行查询,可以写全部也可以写前7位:

     7.查看历史操作记录:git  reflog


    第五part:分支管理


    分支可以理解为多个功能的同时推进,最后完成合并操作

    优点:

    1)同时并行多个功能开发,提高开发效率

    2)各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支产生任何影响,即各个功能开发者的独立性。

    1.创建分支:git branch 分支名

    注意:基于当前主分支下进行创建分支的话,则会复制一份主分支内容为需要创建的分支。

    2.查看分支:git branch -v   其中-v参数表示查看本地分支

    git branch -r  如果需要查看远程分支的话则添加参数-r

    git branch -a  如果是添加参数-a的话则表示显示所有分支,包括本地分支和远程分支。

    其中分支前面有*,代表当前处于处于哪个分支:

    3.切换分支:git check out 分支名

     4.合并分支:

    【场景1】基于主分支新建的新分支,会复制一份主分支的内容,然后基于新分支修改其中文件内容并提交产生新的历史版本,不修改主分支的操作也不产生主分支的历史版本,则可以直接将新分支内容合并到主分支中。

    git merge 有新内容的分支名

    【场景2】基于主分支新建新分支后,在新分支上进行修改文件产生历史版本,同时也在主分支上修改相同的文件并产生历史版本,那么进行合并时会产生冲突问题?

    冲突解决方案:

    a.产生冲突后,查看合并后的内容,会将两个分支都新增或者修改的代码进行显示出来

    b.编辑合并后的文件,将特殊符号内容全部删除

    c.合并主分支的开发者需要进行分析以及与新分支的开发者进行沟通,是全部保留两个人新增的代码还是只选择其中一个人的

    d.将修改后的文件进行git add 文件名

    e.最后将暂存区的文件生成版本库:git commit -m “注释内容”

    【场景3】新分支中如果新增文件,在主分支中不存在的话,则可以直接合并,将新分支中的文件同步到主分支中。

    5.终极解决Git终端中的乱码问题:

    1)新增配置项,将core.qutoepath的值修改为false      git config --global core.quotepath false

  • 相关阅读:
    《中小学生Python编程入门指南》1.1 什么是编程
    《中小学生Python编程入门指南》前言
    简单的番茄工作法倒计时(源码)
    关于AE
    Blender2.5快捷键
    关于Blender
    随意设置控件每一个角的倒角
    关于多个block问题
    UICollectionViewCell--查找cell上的按钮点击后,对应的是哪个cell
    UIMenuItem
  • 原文地址:https://www.cnblogs.com/smilecindy/p/13767153.html
Copyright © 2011-2022 走看看