zoukankan      html  css  js  c++  java
  • Git

    Git的特点:•速度

    •简单的设计

    •对非线性开发模式的强力支持(允许上千个并行开发的分支)

    •完全分布式

    •有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

    Git与svn的对比:

    svn属于集中版本管理控制系统,系统中保存了所有文件修订版本,协同工作人员通过连接svn服务器,提取出最的文件,获取提交更新

    集中管理方式在一定程度上到其他开发在干什么,管理也可以很轻松掌握每个人的开发权限。

    但是相较于优点而言集中版本控制工具缺点很明显:

    1、 服务器单点故障

    2、 容错性差

    Git指关注文件的整体数据是否发生了改变,而其他系统只关注文件内容是否发生了改变(只关注文件中的内容差异)

    为提高性能,若文件没有变化,Git 不会再次保存,而只对上次保存的快照作一连接。

    Git只对文件的整体内容进行一次对比,如果整体内容没有发生多大的变化,则不会把数据再次保存到快照中。

    使用Git,不需要跑到外面的服务器上获取数据,只需要在本地数据库上把你需要的数据取出来即可。

    在保存到 Git 之前,所有数据都要进行内容的校验和(checksum)计算,并将此结果作为数据的唯一标识和索引。换句话说,不可能在你修改了文件或目录之后,Git 一无所知。

    时变得不完整,或者磁盘损坏导致文件数据缺失,Git 都能立即察觉。

    Git 使用 SHA-1 算法计算数据的校验和,通过对文件的内容或目录的结构计算出一个SHA-1 哈希值,作为指纹字符串。

    所有保存在Git中的数据都是利用哈希值来做索引的。

    对于任何一个文件,在 Git 内都只有三种状态:

    已提交(committed):已提交表示该文件已经被安全地保存在本地数据库中了;

    已修改(modified):已修改表示修改了某个文件,但还没有提交保存;

    已暂存(staged):已暂存表示把已修改的文件放在下次提交时要保存的清单中。

    在此,将Git服务器搭建在Linux系统下

    在Java虚拟机下安装一个linux系统,改下虚拟网络编辑器修改网段,同时安装Xshell进行与linux系统的连接

    1、Git需要很多依赖环境:因此安装git需要先安装下列软件:

    [root@itcast-01 ~]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel gcc-c++

     2、上传git安装包:

    安装包:git-2.9.3.tar.gz

    安装命令:(进入git解压目录)

    [root@local git-2.9.3]# make prefix=/usr/local all

    [root@local git-2.9.3]# make prefix=/usr/local instal

    3、添加Linux的用户,用户名为git的用户:

    [root@local ~]# useradd git

    设置git用户的密码

    [root@local ~]# passwd git

    切换到git用户

    [root@local ~]# su git

    4、初始化仓库,仓库名为taotao.git:

    [git@local root]$ cd

    [git@local ~]$ git init --bare taotao.git

    始化空的 Git 仓库于 /home/git/taotao.git/

    使用git步骤:

    1、下载安装

    2、git config --global user.email/name

    3、git init 对于一个文件夹目录进行git初始化操作,这个初始化是为了让git对这个文件夹中的文件进行版本管理,初始化完成之后,在当前目录下会有一个.git文件夹,这个文件夹就是版本库

    可以利用.git文件夹下的文件进行一个版本的控制,就是可以对它进行一个版本的回退,回到当前。

    4、在在工作区或者仓库中创建文件,然后对文件进行一系列修改操作

    Git的要求是:你想要让git帮你进行的版本的控制,必须先有一个文件夹,这个文件夹要被Git进行初始化操作,这样才可进行一个git的版本管理。 

    常见的一些Git命令:

    Master分支是主分支,也是git默认创建的分支

    Master分支指向的是最新提交的commitid,利用指针的概念可以知道头指向的是我们的master分支(Git的强大支出并不是一个人开发,而是多人协作开发的概念)

    在主分支上切出一个开发分支dev_first,利用  git checkout -b dev_first创建一个分支

    如果你dev_first分支上,你就不能在自己的分支上删除自己,而必须是在其他分支上。

    Git命令参考手册

    git init

    初始化本地仓库

    git config --global user.name “xxx”

    配置用户名

    git config --global user.email “xxx@xxx.com”

    配置邮箱

    git clone git+ssh://git@192.168.25.128/vt

    Clone远程仓库

    git status

    查看当前版本的状态(是否修改)

    git add xyz

    添加xyz文件到index

    git add .

    增加当前子目录下所有更改过的文件

    git commit -m ‘xxx’

    提交

    git commit --amend -m ‘xxx’

    合并上一次提交(反复提交)

    git rm -r *

    递归删除

    git rm xxx

    删除index中的文件

    git log

    显示提交日志

    git log -1

    显示1行日志

    git log -5

    显示5行日志

    git log --stat

    显示提交日志及相关变动的文件

    git log -p -m

    git show HEAD

    显示HEAD的提交日志

    git show HEAD^

    显示HEAD的父(上一个版本)的提交日志

    git tag

    现在已存在的tag

    git tag -a v2.0 -m ‘xxxx’

    增加v2.0tag

    git show v2.0

    显示v2.0的日志及详细内容

    git log v2.0

    显示v2.0的日志

    git diff

    显示所有未添加至index的变更

    git diff --cached

    显示所有已添加index但还未commit的变更

    git diff HEAD

    比较与上一个版本的差异

    git diff HEAD -- ./lib

    比较与HEAD版本lib目录的差异

    git diff origin/master..master

    比较远程分支master上本地分支master上没有的

    git branch

    显示本地分支

    git branch --contains 50089

    显示包含提交50089的分支

    git branch -a

    显示所有分支

    git branch -r

    显示所有原创分支

    git branch --merged

    显示所有已合并到当前分支的分支

    git branch --no-merged

    显示所有未合并到当前分支的分支

    git branch -m master master-copy

    本地分支改名

    git checkout -b master master_copy

    从当前分支创建新分支

    git checkout features/performance

    检查远程分支的features/performance

    git checkout v2.0

    检出版本v2.0

    git checkout --README

    检出head版本的readme文件

    Git merge origin/master

    合并远程分支至当前分支

    git push origin master

    将当前分支pushmaster分支上

    git push --tags

    把所有tag推送到远程仓库

    git fetch

    获取所有远程分支

    git fetch --prune

    获取所有原创分支master并清除服务器上已删除的分支

    git pull origin master

    获取远程分支mastermerge到当前分支

    git mv README README2

    重命名文件READMEREADME2

    git reset --hard HEAD.

    将当前版本重置为HEAD

    git branch -d

    删除分支

    git branch -D

    强制删除分支

    git show-branch

    显示当前分支历史

    git show-branch

    图示所有分支历史

    git reflog

    显示所有提交

    git show master@{yesterday}

    显示昨天分支的状态

    git log --pretty=format:’%h %s’ --graph

    显示提交日志

    git stash

    暂存当前修改,将所有至为HEAD状态

    git stash list

    查看所有暂存

    git stash apply stash@{0}

    应用第一次暂存

    git grep

    文件中搜索文本“delete from

  • 相关阅读:
    JDBC链接mysql
    javac和java的使用
    PreparedStatement的execute误解
    sleep() 与 wait()的比较
    使用java程序模拟页面发送http的post请求
    《算法竞赛入门经典》6.1.2栈和队列-铁轨
    《算法竞赛入门经典》6.1栈和队列-卡片游戏
    《算法竞赛入门经典》5.42数学基础-因子和阶乘
    《算法竞赛入门经典》5.41数学基础-Cantor的数表
    qsort函数
  • 原文地址:https://www.cnblogs.com/cye9971-/p/10803852.html
Copyright © 2011-2022 走看看