Git使用笔记之项目创建

Posted by dohkoos on January 4th, 2009 (1,224 views)

Git的官网地址:http://git.or.cz/
Git的Windows版本:http://code.google.com/p/msysgit/

官网的学习路线推介:新手请浏览gittutorial(7),然后是Everyday Git(包括了常用命令),接着是"man git-commandname",cvs用户需要看gitcvs-migration(7),需要更全面的了解Git请看Git User's Manual

1. 创建一个版本库

$ mkdir gittest
$ cd gittest
$ git init    <- 初始化当前所在目录的这个项目

2. 告诉项目你的信息

$ git config user.name "dohkoos"
$ git config user.email gittest@dohkoos.name

注意,这样会在当前repository目录下的.git/config中写入配置信息。如果加了--global选项,那么配置信息就会写入到~/.gitconfig文件中。因为你可能用不同的身份参与不同的项目,而多个项目都用Git管理,所以建议不用global配置。

3. 植入内容跟踪信息

$ echo "This is a test!" > test.txt
$ git add test.txt    <- 用git add命令将文件加入到版本库文件索引中

git add实际上是个脚本命令,它是对Git内核命令git-update-index的调用。git-update-index只是刷新了Git的跟踪信息,并不会将test.txt这个文件中的内容提交到Git的版本库中。你也可以使用git add .来将当前目录下的所有内容加入到版本库文件索引中。git rm则是在版本库文件索引中标记指定文件为删除,并删除存在的对应文件。

4. 查看版本库的状态

$ git status

5. 提交内容到版本库

$ git commit    <- 将文件索引中登记的内容永久写入Git版本库中

在输入git commit并按回车后会转到一个vi窗口,要求开发者输入这次提交的版本和开发信息。我们可以通过修改环境变量GIT_EDITOR来修改commit时用来编辑信息的编辑器。还有要注意的是必须要先add或rm后再commit。

git commit的参数:
-s 在变更日志注释末尾添加提交者的Signed-off-by行
-m 使用给定的信息作为变更注释。没有该参数会自动打开一个使用GIT_EDITOR指定的文本编辑器来输入注释
-a 自动检测所有修改过或删除的文件,并将它们添到版本库文件索引中(新建但没有git-add的文件不会被影响)

6. 查看项目历史

$ git log

Related Posts

在egit-0.3.1中使用Compare With Git Revision功能

Posted by dohkoos on August 28th, 2008 (681 views)

egit是一个Eclipse环境下的Git客户端插件,最新版本的egit已经提供了Compare With Revision功能,只是还没有注册到plugin.xml中。所以要使用该功能的话,我们必须自己动手在ui包中的plugin.xml中添加一些代码,即下面的红色部分
<objectContribution
        adaptable="true"
        id="org.spearce.egit.ui.fileFolderContributions"
        objectClass="org.eclipse.core.resources.IResource">
    <filter name="projectPersistentProperty"
        value="org.eclipse.team.core.repository=org.spearce.egit.core.GitProvider">
    </filter>
    <action
        class="org.spearce.egit.ui.internal.actions.CompareWithRevisionAction"
        id="org.spearce.egit.ui.internal.actions.CompareWithRevisionAction"
        label="%CompareWithRevisionAction_label"
        menubarPath="compareWithMenu/compareWithGroup"
        overrideActionId="org.eclipse.team.ui.compareLocalHistory"
        tooltip="%CompareWithRevisionAction_tooltip" />

</objectContribution>

另外,还要将CompareWithRevisionAction.java中run方法的第一条语句删除,否则会报StackOverflow异常
public void run(IAction action) {
    super.action(action);
    ...
}

Related Posts