zoukankan      html  css  js  c++  java
  • Git

    一,什么是Git?

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

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

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

    二,Git 和 SVN 的区别

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

    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 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

    三,安装Git

    Git 各平台安装包下载地址为:http://git-scm.com/downloads

    四,用法

      1,配置 

    Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。
    
    这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:
    
    /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。
    ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。
    当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。
    每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。 在 Windows 系统上,Git 会找寻用户主目录下的 .gitconfig 文件。主目录即 $HOME 变量指定的目录,一般都是 C:Documents and Settings$USER。 此外,Git 还会尝试找寻 /etc/gitconfig 文件,只不过看当初 Git 装在什么目录,就以此作为根目录来定位。

      2,用户信息

    $ git config --global user.name "yunhgu"
    $ git config --global user.email test@yunhgu.com

      3,查看配置信息

    $ git config --list
    http.postbuffer=2M
    user.name=yunhgu
    user.email=test@yunhgu.com

    单独查
    $ git config user.name
    runoob

      4,工作流程

    一般工作流程如下:
    
    克隆 Git 资源作为工作目录。
    在克隆的资源上添加或修改文件。
    如果其他人修改了,你可以更新资源。
    在提交前查看修改。
    提交修改。
    在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。

       5,git创建仓库

    使用当前目录创建仓库
    git init
    使用指定目录创建仓库
    git init dirname

    $ git add *.c
    $ git add README
    $ git commit -m '初始化项目版本'
    以上命令将目录下以 .c 结尾及 README 文件提交到仓库中。

      6,clone

    我们使用 git clone 从现有 Git 仓库中拷贝项目
    git clone <repo>
    如果我们需要克隆到指定的目录,可以使用以下命令格式:
    git clone <repo> <directory>
    • repo:Git 仓库。
    • directory:本地目录。

      比如,要克隆 Ruby 语言的 Git 代码仓库 Grit,可以用下面的命令:

    $ git clone git://github.com/schacon/grit.git
    执行该命令后,会在当前目录下创建一个名为grit的目录,其中包含一个 .git 的目录,用于保存下载下来的所有版本记录。
    
    如果要自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:
    $ git clone git://github.com/schacon/grit.git mygrit

      7,常用命令

    Git 常用的是以下 6 个命令:git clone、git push、git add 、git commit、git checkout、git pull
    一个简单的操作步骤:
    
    $ git init    
    $ git add .    
    $ git commit  

      8,提交与修改

    命令    说明
    git add    添加文件到仓库
    git status    查看仓库当前的状态,显示有变更的文件。
    git diff    比较文件的不同,即暂存区和工作区的差异。
    git commit    提交暂存区到本地仓库。
    git reset    回退版本。
    git rm    删除工作区文件。
    git mv    移动或重命名工作区文件。

       9,日志

    git log    查看历史提交记录
    git blame <file>    以列表形式查看指定文件的历史修改记录

       10,远程操作

    命令    说明
    git remote    远程仓库操作
    git fetch    从远程获取代码库
    git pull    下载远程代码并合并
    git push    上传远程代码并合并

       11,分支管理

    创建分支命令:git branch (branchname)
    切换分支命令:git checkout (branchname)
    合并分支命令: git merge(branchname)
    列出分支:
    git branch
    删除分支:
    git branch -d (branchname)

        12,添加远程仓库

    git remote add [shortname] [url]

    Git基本常用命令如下:

    mkdir: XX(创建一个空目录XX指目录名)

    pwd:  显示当前目录的路径

    git init  把当前的目录变成可以管理的git仓库,生成隐藏的.git文件。

    git add XX  把XX文件添加到暂存区。

    git commit -m “XX” 提交文件 -m后面的是注释

    git status 查看仓库状态

    git diff XX   查看XX文件修改了哪些内容

    git log 查看历史记录

    git reset -hard HEAD^ 或者git reset -hard HEAD~ 回退到上一个版本   (如果想回退到100个版本,使用git reset -hard HEAD~100)

    cat XX 查看XX文件内容

    git reflog  查看历史记录的版本号id

    git checkout --XX    把XX文件在工作区的修改全部撤销

    git rm XX  删除XX文件

    git remote add origin https://github.com/xz9594/testgit.git  关联一个远程库

    git push -u (第一次提交要用-u以后不需要)origin master把当前master分支推送到远程库

    git clone https://github.com/xz9594/testgit.git   从远程库中克隆

    git checkout -b dev 创建dev分支  并切换到dev分支上

    git branch  查看当前所有分支

    git checkout master 切换回master分支

    git merge dev 在当前分支上合并dev分支

    git branch -d dev  删除dev分支

    git branch name 创建分支

    git stash 把当前的工作隐藏起来等以后恢复现场后继续工作

    git stash list 查看所有被隐藏的文件列表

    git stash apply 恢复被隐藏的文件,但是内容不删除

    git stash drop删除文件

    git stash pop 恢复文件的同时也删除文件

    git remote 查看远程库的信息

    git remote -v 查看远程库的详细信息

    git push origin master    Git会把master分支推送到远程库对应的远程分支上

    git 还原push

    1. git log

    2. git reset --soft 43dc0de914173a1a8793a7eac31dbb26057bbee4

    3. git push origin master --force

    不论你在什么时候开始,重要的是开始之后就不要停止。 不论你在什么时候结束,重要的是结束之后就不要悔恨。
  • 相关阅读:
    Delphi TStringList的用法
    Android Studio使用教程(一)
    如何在win7下安装和配置Android Studio
    python基础字符串单引号双引号和三引号
    同步和互斥
    posix多线程有感线程高级编程(条件变量)
    VMware网络配置详解
    posix多线程有感POSIX 线程间的内存可视性
    进程及相关API
    POSIX线程属性
  • 原文地址:https://www.cnblogs.com/yunhgu/p/14024270.html
Copyright © 2011-2022 走看看