Git常用命令

来源:互联网 发布:美工薪资待遇 编辑:程序博客网 时间:2024/05/16 15:12

Git概述

git和svn的区别

svn存储原理:
随着版本变化,每次存储版本的变化
优点:
1.节省磁盘空间
缺点:
1.增加cpu开销

git存储原理:
1.没有改变,引用
2.改变,全部存储

Git服务器安装(Linux)

安装依赖环境

yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

安装命令

tar -zxf git-1.6.0.5.tar.gzcd git-1.6.0.5make prefix=/usr/local allmake prefix=/usr/local install

Git基本原理

Git工作流程

分布式版本控制工具:
代码提交状态:
1. 未提交(工作区)
2. 暂存区(快照)
3. 已提交(仓库)

![](http://i.imgur.com/qmBHpSq.png)

Git仓库初始化

本地开发人员commit提交,需要使用自己本地仓库,只有先提交本地仓库,然后才能提交到远程仓库。本地仓库可以说是共享仓库的备份。
1. 建立本地版本库

    $ git init

2. 设置个人信息

    //设置默认用户信息    $ git config --global user.name "John Doe"    $ git config --global user.email johndoe@example.com    //设置用户信息    git config user.name "user1"    git config user.email "user1@163.com"

设置配置文件在.git目录下config文件

Git的三种工作状态

git三种状态:
1. 未提交(工作区)
待提交文件所在目录就叫工作区

  1. 暂存态(index)
    暂存区也就是提交代码文件缓存区域
  2. 已提交(仓库)
    仓库就是.git文件,此文件就是我们的仓库。

添加暂存态 :git add main.java
提交代码:git commit -m ” main.java first”

git objects

git核心对象,git是有很多数据组成的,这些数据组成一个个对象。
1. Blob object

每个blob代表一个(版本的)文件,blob只包含文件的数据,而忽略文件的其他元数据,如名字、路径、格式等

2. Tree object

每个tree代表了一个目录的信息,包含了此目录下的blobs,子目录(对应于子trees),文件名、路径等元数据。

3. Commit object

commit 存储一次提交的信息,包括所在的tree,parent是谁,作者及message等信息

4. 标签tag

tag用于给某个上述类型的对象指配一个便于开发者记忆的名字, 通常用于某次commit。一个标签对象包括一个对象名(就是SHA1签名), 对象类型, 标签名, 标签创建人的名字("tagger"), 还有一条可能包含有签名(signature)的消息。

5. Commit&Tree&Blob

每个对象(object) 包括三个部分:类型,大小和内容。大小就是指内容的大小,内容取决于对象的类型,有四种类型的对象:"blob"、"tree"、 "commit" 和"tag"。

6. Object&reference

引用其实就是指针,这个指针指向一个对象。表示引用这个对象。

git版本控制工具存储原理:
1. 数据在git分布式版本控制工具中以对象的方式存储.
2. 代码数据被存储Object对象.
3. 对象的命名SHA1发送算法命名,包装文件唯一性.

Git Branch(分支)

Git 中的分支,其实本质上仅仅是个指向 commit 对象的可变指针。Git
会使用 master 作为分支的默认名字。

创建分支

git branch testing

切换分支

git checkout testing

分支合并

git checkout master
git merge hotfix

master(主分支)是缺省分支,指向当前正在工作commit对象.
Head指针:指向当前正在工作的分支.

0 0
原创粉丝点击