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
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
相关文章推荐
- Mac 學習系列之Git环境配置及使用
- 【Mac使用基础】git config 全局配置,user.name和user.email 设置
- Mac系统git的使用与配置
- git在mac上的配置及使用
- mac使用git,repo的账号错误时,.git/config文件的配置
- Mac环境下Android Studio配置Git以及最基本使用
- mac中使用 sourcetree 的快速配置和git服务器登录
- 在MAC下使用gitosis来配置git服务
- mac中使用 sourcetree 的快速配置和git服务器登录
- 在Mac下使用Gitolite来配置git服务
- Mac环境下使用Android Studio配置GIT
- 在MAC下使用gitosis来配置git服务
- 在mac上配置git send-email使用gmail
- Mac系统git的配置和使用注意事项
- git配置和使用
- git-ssh 配置和使用
- AWS下深度学习服务器的MAC上的配置和使用
- mac 使用git
- MAC端Git安装,命令使用以及环境搭建
- Mac下使用homebrew安装配置mysql