最近总是看到git这个关键词所以打算开始学一下git这个东东,赶上时代的步伐嘛!下边是关于git的介绍。
Git --- The stupid content tracker, 傻瓜内容跟踪器。Linus 是这样给我们介绍 Git 的。
Git 是用于 Linux 内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同, 它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。
既然很多大项目都采用Git 相信大家的眼光是没有问题的!
Git 安装
下载地址 最新版是:git-1.7.0 压缩包大概有2.8M左右大小。
参考教程:Git 中文教程
安装之前首先确保相应的依赖包已经安装,主要有以下几个:
zlib
libcurl
libcrypto(OpenSSL)
rsync(2.6.0 或更高版本)
这些条件满足之后,就可以对Git进行安装了:
tar xzvf git-1.7.0.tar.gz
cd git-1.7.0
./configure --prefix=/usr/local/git
make
make install
添加环境变量
vim /etc/profile 添加:export PATH=/usr/local/git/bin:/usr/local/git/libexec/git-core:$PATH
vim ~/.bash_profile 添加:export PATH=/usr/local/git/bin:/usr/local/git/libexec/git-core:$PATH
source ~/.bash_profile
(因为bin目录只有4个命令,其它的几十个命令在libexec/git-core目录下,所在,在PATH搜索路径下,也要加上才能找到)
管理个人文档 (以下文字来自Git 中文教程并结合自己案例)
创建一个版本库:git-init-db
创建一个 Git 版本库是很容易的,只要用命令 git-init-db 就可以了。举例在/root下建立一个脚本项目
#mkdir scripts
#cd scripts
#git-init-db
git 将会作出以下的回应
defaulting to local storage area 或 Initialized empty Git repository in /root/scripts/.git/
==========================内容介绍======================
这样,一个空的版本库就创建好了,并在当前目录中创建一个叫 .git 的子目录。 你可以用 ls -a 查看一下,并请注意其中的三项内容:
一个叫 HEAD 的文件,我们现在来查看一下它的内容:
#cat .git/HEAD
ref: refs/heads/master
我们可以看到,HEAD 文件中的内容其实只是包含了一个索引信息, 并且,这个索引将总是指向你的项目中的当前开发分支。
一个叫 objects 的子目录,它包含了你的项目中的所有对象。
一个叫 refs 的子目录,它用来保存指向对象的索引。
========================================================
上述工作做完可以进行文档管理的测试了!
首先在/root/scripts/目录中创建自己的脚本。
vim test.sh
#!/bin/bash
echo "Hello Word!"
保存退出后执行git add test.sh 将文件加入到版本库文件索引中!
git-add 可以将某个目录下的所有内容全都纳入内容跟踪之下,例如: git-add ./path/to/your/wanted 。但是在这样做之前, 应该注意先将一些我们不希望跟踪的文件清理掉, 例如,gcc 编译出来的 *.o 文件,vim 的交换文件 .*.swp 之类。
应该建立一个清晰的概念就是,git-add 只是刷新了 git 的跟踪信息,test.sh文件中的内容并没有提交到 git 的内容跟踪范畴之内。
使用git commit 提交信息! git commit -a -m "20100221 for git"
使用git status 查看git 状态!
然后用echo "exit 0" > test.sh 稍微修改一下test.sh
使用git diff
差异将以典型的 patch 方式表示出来:
#git diff
diff --git a/test.sh b/test.sh
index b810889..11ce6a3 100644
--- a/test.sh
+++ b/test.sh
@@ -1,3 +1,4 @@
#!/bin/bash
echo "Hello Word!"
+exit 0
Git对大小写区别很敏感
1.git init 创建工程
2.git add . 添加所有文件到工程
3.git-update-index --force-remove res/Thumbs.db 删除res/Thumbs.db索引,因为这个文件没有用
or git rm res/Thumbs.db (可以通过修改.git\info\exclude文件来添加忽略文件,不要以#开头,直接输入换行就行了)
4.git ls-files 列出此工程所有文件
5.git-status 查看版本库状态
6.git-commit 向版本库提交变化
7.git-branch 分支管理
8.git-merge master dev1 合并分支
9.git-clone [ssh://]username@ipaddr:path 远程获取一个git库
10.git-pull : 远端repository名 远端分支名:本地分支名 从远程获取一个git分支
11.git-push : 远端repository名 本地分支名:远端分支名 将本地分支内容提交到远端分支
12.git-reset [--mixed | --soft | --hard] [] 库的逆转与恢复