zoukankan      html  css  js  c++  java
  • git介绍及使用

    一、架构

    • 版本库(仓库):工作区中有一个隐藏目录.git,这个目录不属于工作区,而是git的版本库,是git管理的所有内容。
    • 暂存区:版本库中包含一个临时区域,保存下一步要提交的文件。
    • 分支:版本库中包含若干分支,提交的文件存储在分支中
    • 工作区:.git所在目录就是工作区

    架构图:

    二、远程仓库

    上边所说的仓库是本地仓库

    多人之间需要共享代码、合并代码,此时就需要一个远程仓库。

    常用的远程仓库有github和码云

    三、分支

    1.分支简介

    分支是一个个版本最终存储的位置

    2.分支的基本操作

    • 查看当前仓库分支

        命令:git branch

        仓库中默认只有 master分支,当我们执行 git commit时,默认是在 master分支上保存版本。

        

    • 创建分支   

        在商业项目开发过程中,我们不会轻易的在master分支上做操作。我们会新建一个开发用的分支,在此分支上做版本的记录。当代码确实没有问题时,才会将开发分支上成熟的代码版本添加到 master分支上。既保证开发过程中,可以及时记录版本,又保证 master分支上每个提交点都是稳健版本。

        命令:git branch 分支名

        

        上图中可以看到我们又两个分支,一个master,一个dev。注意:master是绿色的且左边有个*号,这表示的是master是当前的有效分支,如果我们使用命令git commit提交一个版本会提交到当前的有效分支master上。

    • 切换分支

        我们可以切换到指定的分支,则后续的 git commit便会在指定分支上新建版本提交点

        命令:git checkout 分支名

        

    3.新建分支的细节

    • 每个分支都有一个指针,新建一个分支,首先是新建一个指针。而且新分支的指针会和当前分支指向同一个提交点。
    • 新分支和当前分支拥有相同的提交点。(当前分支指的是创建此分支的分支)

    多分支的走向:在master分支和新分支分别进行git add 和 git commit 时,分支情况如下图

     

    4.分支日志查看

    • 查看简单日志

        命令:git log --oneline

         

    • 查看完整日志

        命令:git log

        

    5.分支的合并

    • 两个分支的合并

        命令:git merge 分支名

        作用:将指定分支名的分支与当前分支合并

        拓展:git log --oneline --graph 此命令可以查看分支合并的走势图

          

      • 快速合并:假如有两个分支maste和dev,快速合并指的是master分支没动,dev分支发生了改动,此时我们只需要将master分支的指针移动到dev分支上即可。
      •  图解:

          

      • 三方合并:原理:将master最新节点相较于节点1的改动,和dev最新节点相较于节点1的改动,和节点1,这三方合并,然后放到master新建的一个节点上。
      •  图解:

          

          

    6.分支合并冲突

    两个分支进行合并,但它们都有对同一个文件的修改,则在合并时会出现冲突,git无法决断该保留改该件哪个分支的修改。

    冲突的解决:

    git会在发生冲突的文件中,将两个分支的内容合并到该文件中。我们只需要打开该文件,解决冲突后,重新add,然后commit提交即可。

     

    四、常用命令

    1. git init

    作用:初始化一个空的git仓库

     在文件夹中会生成一个.git文件,如下图:

    2.git status

    作用:查看文件,文件夹在工作区和暂存区的状态

     补充:截图哪里突然文字没了,这里补充一下:黄色框中Untracked files 是未跟踪文件的意思,什么是未跟踪文件呢?就是git没有提交到暂存区或分支中的文件。

    3. git add 文件名

    作用:将指定文件名的文件从工作区加入到暂存区。

    拓展: git add .    一次性将工作区中的所有文件添加到暂存区中。(注意add后边有个“.”)

    add之后,在通过git status查看,文件会从红色(未跟踪状态)变成绿色(待提交状态)。

     4. git commit -m "提交的描述信息"

    作用:将暂存区的文件存入分支,形成一个版本

     此时再通过git status 查看文件在工作区中的状态

     可以看到此时提示没有东西可提交,工作区已清理干净。

    5.远程仓库相关命令

    注意:要先关联远程仓库才能够将本地仓库的内容push到远程仓库中

  • 相关阅读:
    Git 上传本地项目
    virtual和override
    ASP .NET依赖注入理解
    dotnet不是内部或外部的命令,也不是可运行的程序或批处理文件
    C++ 简单选择排序
    C++ 排序
    iOS UIDynamic
    iOS Modal
    C++ 折半查找
    C++ 二叉链表
  • 原文地址:https://www.cnblogs.com/bear7/p/13574757.html
Copyright © 2011-2022 走看看