Git常用命令及配置

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

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

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

Git安装配置

本文主要讲解linux上如何安装配置Git

Centos/RedHat
$ yum install curl-devel expat-devel gettext-devel \
 openssl-devel zlib-devel

$ yum -y install git-core

$ git --version
git version x.x.x 
  • Git得配置信息得目录:

    • .git/config

  • 用户信息配置

    • git config --global user.name "个性名称"

    • git config --global user.email "个人邮箱地址"

    • 配置个人的用户名称和电子邮件地址:

  • 查看用户信息

    基本概念

    工作区:本地目录

    暂存区:英文叫stage, 或index。一般存放在"git目录"下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)

    版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

  •  

  • 图中左侧为工作区,右侧为版本库。在版本库中标记为 "index" 的区域是暂存区(stage, index),标记为 "master" 的是 master 分支所代表的目录树。

    图中我们可以看出此时 "HEAD" 实际是指向 master 分支的一个"游标"。所以图示的命令中出现 HEAD 的地方可以用 master 来替换。

    图中的 objects 标识的区域为 Git 的对象库,实际位于 ".git/objects" 目录下,里面包含了创建的各种对象及内容。

    当对工作区修改(或新增)的文件执行 "git add" 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。

    当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。

    当执行 "git reset HEAD" 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。

    当执行 "git rm --cached <file>" 命令时,会直接从暂存区删除文件,工作区则不做出改变。

    当执行 "git checkout ." 或者 "git checkout -- <file>" 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动。

    当执行 "git checkout HEAD ." 或者 "git checkout HEAD <file>" 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。

    • git config --list

      Git工作区、暂存区和版本库
  • git init

    找到一个空得文件位置,然后使用此命令

  • git clone [url]

    从Github网站得仓库中拉取下代码到当前工作区

  • git add <file-name>

    共当前得工作区把文件添加到暂存区

  • git diff

    比较工作区和暂存区得区别

  • git commit

    从暂存区到版本库

  • git reset HEAD

    用于取消缓存已缓存的内容

  • git branch

    显示当前已有分支

  • git checkout [branchname]

    切换分支

  • git merge

    合并分支

  • git branch -d [branchname]

    删除分支名称

  • git log

    查看git历史

  • git tag

    写标签

  • git remote add [shortname] {url}

    添加远程库

  • ssh-keygen -t rsa -C "github仓库地址"

    检测是否已成功连接此仓库

  • git push -u origin master

    推送在版本库中得代码到远程仓库得master分支

  • git pull

    拉去远程仓库到本地

  • git remote rm [远程仓库别名]

    删除远程仓库

posted @ 2019-02-18 13:10  入坑的H  阅读(178)  评论(0编辑  收藏  举报