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

  • 相关阅读:
    jquery实现选项卡(两句即可实现)
    常用特效积累
    jquery学习笔记
    idong常用js总结
    织梦添加幻灯片的方法
    LeetCode "Copy List with Random Pointer"
    LeetCode "Remove Nth Node From End of List"
    LeetCode "Sqrt(x)"
    LeetCode "Construct Binary Tree from Inorder and Postorder Traversal"
    LeetCode "Construct Binary Tree from Preorder and Inorder Traversal"
  • 原文地址:https://www.cnblogs.com/smilecindy/p/13767153.html
Copyright © 2011-2022 走看看