本节内容已经过时,可能具有误导性或无效。请谨慎对待这里的任何说明。如有疑问,请向社区求助。
本页是一个关于如何使用 Git 的真正快速又肮脏的教程。它对斐济的工作有强烈的偏见;您应该参考 Git workshop、Git for dummies 或 Git’s homepage 了解更多信息。
这些解释大部分是针对命令行用户的。
命名法
关于命名法的简要说明:fiji.git指的是1上的“官方”存储库。克隆后,您将拥有一个标记工作目录的本地存储库,在文档本中将其称为fiji/(而cd fiji/只是告诉您确保位于该目录中)。
如果您不确定任何 Git 术语的含义,只需查阅 Git glossary。
克隆
您需要克隆fiji.git:
$ git clone git://fiji.sc/fiji.git/
贡献
所有贡献均应通过 GitHub pull request
本地配置
您需要确保 Git 知道您是谁(在此处替换您的姓名/电子邮件…):
$ git config --global user.name "General Failure"
$ git config --global user.email "general@failure.harddrive.org"
如果您首选的编辑器不是 vi,您可能想做一些事情(同样替换您的宠物编辑器…):
$ git config --global core.editor xemacs
#更新中
如需获取最新更改,请致电
$ cd fiji/
$ git pull
注意:您应该始终在拉取之前提交更改。
奔跑斐济
一个简单的
$ cd fiji/
$ sh Build.sh run
将接受所有变化,重建需要重建的地方,并运行斐济。
进行更改
您可以add/modify plugins,并通过运行“make”进行测试。
一旦您对更改感到满意,您应该检查您的更改
$ cd fiji/
$ git status
这将显示哪些跟踪的文件被修改,以及未跟踪的文件(可能需要添加到 Git 存储库)。您可以使用以下命令查看更改的差异
$ cd fiji/
$ git diff
您应该暂存更改/新的文件以进行提交,并验证所有文件是否已正确暂存,方法是:
$ cd fiji/
$ git add <files>
$ git status
如果所有需要提交的文件都正确已暂存,则可以提交它们:
$ cd fiji/
$ git commit
请确保您的提交消息采用以下格式:
The first line is a short description
After an empty line, you can go into details what this commit does, and why. Maybe even how.
注意:当您发现自己最终没有提交时,一个解决办法是删除完整提交消息,保存并退出。这将中止提交。中止提交的能力非常方便,例如当您在要提交的文件列表中不需要看到的时候。
有关更高级的 Git 使用,请参阅“进行更改(高级)”。
将改变大城市到上游
在您决定发布之前,所有提交都是纯本地的。在实际执行此操作之前,您可能需要先检查要发布的内容(假设分支名称为“contrib”):
$ cd fiji/
$ git fetch contrib
$ gitk contrib/contrib..
(请注意,gitk 窗口中的作业是按时间顺序排序的,最近的作业是最上面的,还请注意,左侧标有空心提交的作业是所谓的“上游”作业,即已经是上游的作业)。
现在您可以通过以下方式发布您的更改
$ cd fiji/
$ git push contrib HEAD:contrib
注意:如果有人同时对分支进行了更改,您需要先拉取:
$ cd fiji/
$ git pull contrib contrib
$ git push contrib HEAD:contrib
注意:在乘客之前,您可能需要 resolve merge conflicts。
CVS/Subversion 用户注意:使用 Git,强烈建议先提交,然后拉取。Git 非常擅长分支和合并,对你来说,提交一个你实际测试过的版本比在提交之前其他集成人的更改更好。它还有助于finding which commit introduced a regression。
图形用户界面
有用于使用 Git 的图形用户界面。您可能想使用 gitk 查看一些作业历史记录,并且您可能想使用 git gui 克隆/拉取/添加/作业/个体。
如果您是 Eclipse 用户,您可能需要使用Eclipse plugin。
进行更改(高级)
Git 知道清楚状态:
- 分支的尖端(又名最后提交的版本,或“HEAD”)
- 暂存区(也称为“索引”)
- 工作目录
您可以只选择要暂存的一些更改,而不是暂存整个文件:
$ cd fiji/
$ git add -i
这将使您从未临时存储的更改中选择单个块将它们放入临时存储区域。它还允许您恢复到存储的版本
在 git-gui 中,您可以通过单击文件来执行相同的操作,然后从右键单击 hunk 标题(以 @@ 开头的行)获得的上下文菜单中选择 Stage this hunk 或 Unstage this hunk。
您可以使用以下命令检查暂存区域中发生的更改:
$ cd fiji/
$ git diff --cached
当您对分阶段的更改感到满意时,只需承诺
$ cd fiji/
$ git commit
更高级的 Git 使用涉及topic branches。