您的位置:首页 > 其它

Mac下配置使用Git

2013-11-13 16:48 274 查看
1.基本概念

Git 是由Linux Kernel创始人Linus设计发布的一个版本控制软件。

Git仓库就是那个.git目录,其中存放的是我们所提交的文档索引内容,Git基于文件内容存储,实现版本控制。.git目录位于工作目录内。

(1)工作目录:用户本地目录

(2)Index(索引):讲工作目录下所有文件(包括子文件)生成快照,存放到一个临时存储区域,Git称该区域为索引

(3)仓库:将索引通过commit命令提交到仓库中,每一次提交都意味这版本在进行一次更新。

2.下载安装Git

Mac版的Git下载地址为:http://code.google.com/p/git-osx-installer/downloads/list?can=3

下载的文件是一个dmg文件,直接双击安装就可以了。默认安装目录是/usr/local/git

在命令行中输入: git , 如果输出git命令使用信息,说明git已经安装成功了~

3.配置Git

Git有一个工具成为git config,它允许你获得和设置配置变量,这些变量可以控制Git外观和操作等。

(1)配置变量被存储在三个不同的位置:

(a) /etc/gitconfig 文件: 这个文件包含了用于系统所有用户和所有库的值。如果你传递参数选项“--system”给git config,它将读写这个文件。

(b) ~/.gitconfig 文件: 具体到你的自己的用户。可以通过传递“--global” 给git config,使其读写这个文件。

(c) 位于git目录的config文件(即.git/config): 无论你当前在用的库使什么,特定指向该单一的库。

(2)配置你的用户名和邮箱

$git config --global user.name "your name"

$git config --global user.email youremail@xxx.xxx

(3)配置编辑器和比较工具

$git config --global core.editor yourediter

$git config --global merge.tool your diff tool

git缺省情况先使用你系统缺省编辑器,通常可能使vim,vimdiff

(4)检查配置

$git config --list

或者直接打开~/.gitconfig查看

4.创建Git库

(1)创建一个空的库test,很简单,使用 git init就可以了。

$mkdir test

$cd test

$git init

这样一个空的版本库就创建好了,并在当前目录test下创建了一个子目录.git,以后文件的变化信息都会存储到这个目录下.

(2)配置库test

在 test/.git/目录下有一个config配置文件,上面已经说过,这个配置文件是test这个库单独使用的。

初始内容如下:

[core]

repositoryformatversion = 0

filemode = true

bare = false

logallrefupdates = true

ignorecase = true

precomposeunicode = false

我们需要加入如下内容:

[user]

name=yourname

email=youemail@xxx.xxx

这样一个名为test的版本库就创建好了,但它是空的,不能做任何事,下一步就是要向里面添加文件。

(注: 如果你想忽略某些文件,可以在.git目录下创建一个gitignore文件,在里面添加希望过滤掉的的文件类型)

5. 向Git库中添加文件

比如在库目录test下面有一个需要添加的文件file1,把file1添加的库中的过程如下:

(1)先把file1添加到索引中(缓冲区) --git add <fiilename>

$git add file1

(可以利用git status 查看版本库状态)

(2)把file1文件(改动)提交到HEAD中 -- git commit -m "提交信息"

(假设提交信息写的是commit by abc)

$ git commit -m "commit by abc"

6.分支管理

在第一次执行 git init 时,系统就会创建一个名为“master”的主分支。你要手工创建一些其他分支,然后在新创建的分支上进行开发,最后把他们合并到主分支master上。

一般的分支策略:

(a) 创建一个属于自己的个人工作分支,可以避免对主分支master造成太多干扰,也方便与他人交流;

(b) 进行高风险工作时,创建一个试验性分支;

(c) 合并别人工作的时候,最好创建一个临时分支来合并,合并后再“fatch”到自己的分支。

分支管理操作只要有:

(1) 创建分支

法1: git branch branch_name

创建一个branch_name分支,但是不会切换到branch_name这个分支,需要执行 git checkout branch_name 切换到branch_name分支

法2: git checkout -b branch_name

创建一个branch_name分支,并且切换到branch_name分支

(2) 删除分支

git branch -d branch_name

(3) 切换分支

git checkout branch_name

(4) 合并分支

(a) git merge 合并的目标分支 合并的来源分支

例如: $ git checkout master (切换到master分支)

$ git merge master branch1 (合并maste分支和branch1分支)

(b) git pull 合并的目标分支 合并的来源分支

例如: $ git checkout master (切换到master分支)

$ git pull . branch2 (合并当前分支和branch2分支)

(5)撤销操作

如果你的工作目录里搞的一团糟,但现在还没有提交,你可以使用如下命令,让工作目录回到上次提交时的状态(last committed state)

$ git reset --hard HEAD

如果你已经做了一个提交(commit),但马上又后悔了,你可以创建一个新提交(commit),在新提交里撤销老提交所作的修改。

$git revert HEAD

你还可以撤销上上次的提交(commit)

$git revert HEAD^

还可以还原到制定的版本,但是需要提供那个版本号

$get revert 9a932ab7ecaba140b18ca821e050d04f0045c856

7. clone

一般 git clone 是使用频率很高的命令了。使用这个命令,你可以从远端完整获取一个git库,并可以通过一些命令和远端git交互。

基于git代码管理的组织结构,往往形成一个树状结构,开发者一般从某个代码模块的管理者git库通过git clone 来取得开发环境,在本地迭代开发后,再提交给该模块的管理者,该模块的管理者检查这些提交并将代码合并到自己的库中,并向更高一级代码管理者提交自己的模块代码。

为了clone一个仓库,我们需要知道这个项目仓库的地址(Git URL). Git能在许多协议下使用,所以Git URL可能是以 ssh://, http://, https://, git:// ,或者只是以一个用户名为前缀。

例如: git本身的源代码可以使用git://协议来访问

$git clone git://git.kernel.org/pub/scm/git/git.git
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: