Chinaunix首页 | 论坛 | 博客
  • 博客访问: 302839
  • 博文数量: 47
  • 博客积分: 1667
  • 博客等级: 上尉
  • 技术积分: 686
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-06 16:20
文章分类

全部博文(47)

文章存档

2013年(20)

2012年(20)

2011年(7)

分类: LINUX

2013-03-21 11:24:54

1,git 对修改过的文件直接快照,并非比对文件版本之间的差异性。

 

2,git 3种状态,已修改,已暂存,已提交。

  






3,git拥有3种对象,一种是保存文件快照内容的blob对象,一种是记录目录内容和其中各个文件对象blob对象索引的
tree对象,一种是指向tree对象的索引和其他提交信息元数据的commit对象。
   



 4,多次提交后,commit对象还包括一个指向上次commit对象的指针





 5,分支就是一个指向commit对象的指针,随着commit对象而改变



6,新建一个testing分支,并切换到testing分支下
   #git branch  testing
   #git checkout testing
或者
  #git branch  -b testing



7,当前所在的分支在于HEAD保存的指针




yum  -y install wget  curl-devel zlib-devel openssl-devel perl cpio gettext-devel autoconf


wget
tar xvzf git-latest.tar.gz
cd git-$(date +%Y-%m-%d)
autoconf
./configure
make
make install


mkdir  -p /git
cd /git/
git init  ##初始化git.当前目前有.git 的目录
git config --global user.name "tony"           ##提交个人信息
git config --global user.email "tony@163.com"  ##提交个人信息
touch test    
git add test                                   ##加入暂存区
git commit -m "zhushitest"                     ##提交到仓库


git diff                                       ##比较工作区与暂存区的区别
git diff  --cached                             ##比较暂存区和仓库的区别
git diff  HEAD                                 ##比较工作区与仓库的区别

其实git diff  并不能直接比对工作区和仓库之间的区别,所谓HEAD 只不过是个游标,读取.git目录下的HEAD文件
#mv ./git/HEAD ./git/HEAD2
#git diff HEAD
usage: git diff [--no-index]
再次执行 git diff HEAD就报错了

HEAD文件里面记录的是所谓当前的分支:
比如
#cat .git/HEAD
ref: refs/heads/master
这说明当前的分支为master,再者refs/heads/master文件所记录的是仓库下master分支的最近一次的提交
##
# git checkout -b test ##新建一个test分支并切换到test分支下
# cat .git/HEAD
ref: refs/heads/test
很明显HEAD游标已经找到test分支上了




# cat .git/refs/heads/master
89b6d6cc10f8a766623f1677515c59fda37e1133
##这里也可以看到git diff HEAD 是和89b6d6cc10f8a766623f1677515c59fda37e1133 进行比对



创建分支

#git branch #查看当前所在分支
#git branch web ##创建1个名称为web的分支
#git checkout web  ##切换到web的分支下


#git merge test ##将test分支合并在当前分支
#git branch -d test #删除test分支,如果分支没有合并,会提示不能删除,如果需要强制删除,使用-D





#搭建服务器
#groupadd git
#useradd -G git -d /dev/null -s /sbin/nologin  git
#useradd -G git  tony
#echo 12345678 |passwd  --stdin tony
#mkdir  -p /web/git
#git clone --bare /web/web.git



echo -e "[receive] \n
denyCurrentBranch = ignore"  >> .git/config





















阅读(2123) | 评论(0) | 转发(0) |
0

上一篇:nginx 配置文件使用变量

下一篇:KVM学习

给主人留下些什么吧!~~