Git使用笔记之项目创建
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功能
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);
...
}

