zoukankan      html  css  js  c++  java
  • git使用

    1.git概述

    Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

    Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

    2.Git 与 SVN 区别

    Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

    如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概念和特征。

    Git 与 SVN 区别点:

    • 1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。

    • 2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。

    • 3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。

    • 4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。

    • 5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

    3.Git 指令

      git init         初始化一个git仓库(之后该文件夹成为一个git仓库,本目录生成一个.git文件)

      git add <file>      添加文件

      git commit -m <message>     提交添加的文件(提交之后,文件才受控)

      git status       查看版本库的状态

      git diff <file>        比对文件的修改内容

      git diff HEAD -- <file>    查看工作区和版本库里面最新版本的区别

      git log          查看提交日志

      git log --pretty=oneline   显示简化版的提交记录信息

      git reset --hard commit_id   回退到某一个点(commit_id可以使用git log查看)

      git reset HEAD          回退当前版本(撤销本地修改)

      git reflog             查看历史操作命令

      git checkout -- <file>        撤销工作区的修改

      git reset HEAD <file>       撤销(unstage)暂存区的修改

      git rm <file>            删除文件(后续可以通过reset撤销修改)

      git branch            查看分支

      git branch <name>        创建分支

      git checkout <name>        切换分支

         git checkout -b <name>     创建并切换分支

      git merge <name>        合并某分支到当前分支

           git branch -d <name>      删除分支

      

    4.Git工作机制

    工作区(working directory)

      一个git仓库就是一个工作区(git init执行时所在的那一个文件夹)。简单理解就是平时直接编辑的那些文件

    版本库(repository)

      工作区有一个隐藏的目录.git,这个不算工作区,而是git的版本库。简单理解就是git内部的一个库,不用直接编辑。

      Git的版本库里存了很多东西,其中最重要的就是成为stage的暂存区,还有masterr分支,以及指向master的指针HEAD。

    对应解析:

      git add实际上就是把文件修改添加到暂存区

      git commit提交修改,实际上就是把暂存区的所有内容提交到当前分支。

      

  • 相关阅读:
    NIO[读]、[写]在同一线程(单线程)中执行,让CPU使用率最大化,提高处理效率
    解码(ByteBuffer): CharsetDecoder.decode() 与 Charset.decode() 的不同
    ACCESS与SQL Server下SQL Like 查询的不同
    试着用c写了一个多线程的同步
    收藏:c语言的多线程同步
    java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 不能使用 '(未知的)';文件已在使用中
    Linux进程管理
    MySQL数据备份
    MySQL索引
    Socket.IO 概述
  • 原文地址:https://www.cnblogs.com/gc65/p/10622979.html
Copyright © 2011-2022 走看看