SCPinions 0.1.1

SCPinions 0.1.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布时间最新发布2014年12月

未声明维护。



SCPinions 0.1.1

  • 作者
  • Steamclock Software

Steamclock使用各种工具和实用程序来构建我们的应用程序。我们把这些工具称为“齿轮”,并愿意开源它们。目前我们还在重新格式化、注释和组织我们的代码,因此如果您现在在这里,请了解即将推出文档。

SCPinions在MIT许可证下发布。

使用SCPinions

您可以克隆整个仓库,然后根据需要选择要使用的齿轮,但我们建议如果您预计需要我们在更新SCPinions时拉入更改,请使用`git subtree`。

请注意,如果您要使用以下说明,您需要安装git >= 1.7.11版本。您可以通过输入`git --version`来查看。

  1. git remote add SCPinions [email protected]:steamclock/SCPinions.git
  2. git fetch SCPinions
  3. git branch SCPinions SCPinions/master
  4. git read-tree --prefix=SCPinions/ -u SCPinions

现在您的主目录中有一个保存SCPinions的目录,并且可以使用它来处理您的项目。

要从SCPinions获取更改并将其合并到您的项目中

  1. git checkout SCPinions
  2. git pull
  3. git checkout master
  4. git merge --squash -s subtree --no-commit SCPinions

注意:如果您已对本地进行了更改,该合并将尝试覆盖这些更改。使用以下合并策略之一,首先将您的本地更改放在分支上。

我们使用`--squash`而不是直接合并的原因是,我们不想在合并两个项目时获取任一项目的提交历史。在大多数情况下,您不希望SCPinions的提交历史出现在基础项目中,我们也不想在我们的项目中包含基础项目的提交历史,特别是如果它是专有的。`--no-commit`只是为了让您在提交之前确认它是否成功。如果您希望包含我们的提交历史(但请记住,始终使用-s subtree!),则可以跳过`--squash`和/或`--no-commit`。

另一个替代策略,如果不在乎我们的历史并且没有计划做出贡献,请参阅https://help.github.com/articles/working-with-subtree-merge - 它只需一个命令就可以拉取更改,但灵活性较低。

为SCPinions做贡献

具有推权限的贡献者

一旦您建立了子树,要提交更改到SCPinions存储库,请执行以下操作

  1. 使用`git diff-tree -p SCPinions`或`git log SCPinions/`来审查您在主分支子树中做出的更改
  2. git checkout SCPinions
  3. git merge --squash -s subtree --no-commit master
  4. 推送!

在此始终使用 --squash 和 --no-commit,以将项目历史记录排除在 SCPinions 之外。此外,您还可以按如下方式选择相关提交: git cherry-pick --strategy=subtree <提交ID> 此方法的好处是不会破坏其他更改,因此您可以使用它来解决您的主分支 SCPinions/ 和您的分支都有更改的问题。

重要: 当我 (afabbro) 首次尝试使用子树时,我有点担心反击上游,因为我的分支在外观上似乎在分叉后根目录中有来自我的主/主项目的文件。git 没有在 SCPinions 的相同上下文中跟踪这些文件;当您尝试使用 git 命令操作这些文件时,git 好像对它们一无所知。但我们想要的就是这样,因为我们不希望将主分支上的任何内容推送到 SCPinions。如果您遵循以上步骤,并且 git log 看起来很干净,那么您应该没问题。

外部贡献者

嘿!你想要为 SCPinions 贡献吗?那太棒了。如果您稍做调整,将更容易做到。

  1. 将我们的代码叉入您自己的仓库
  2. 按照'使用 SCPinions'的部分说明,使用您自己的分支的 git 地址代替我们的仓库进行子树操作。
  3. 遵循'具有推送权限的贡献者'部分下的说明,将更改推送到您的分支,这部分位于本部分的前面,如果您正在使用子树路线。
  4. 在 Github 上提交拉取请求
  5. 我们将永永远远爱你。 <3

如果您疯狂,也可以使用 git 子模块作为替代。