3

从事学术研究,我仍然没有为我们的项目找到一个好的 git 工作流。

设置:我们将主项目保存在分支主中。当新想法出现时,就会创建一个新分支来支持研究。通常由不同的人驱动的主要项目有几个并行的研究。

当我在研究分支 R 上工作时(可能需要几个月的时间,并且需要多次提交)。我的一些提交与研究没有直接联系,并且正在改进项目本身......我想将这些提交推送到 master 分支(它们可能对其他人有所帮助)。

我该怎么做?樱桃采摘?在我看来,经过大量挑选(来自更多人和不同分支)之后,最终将分支 R 与 master 合并将很困难。

也许更好的选择是在提交之前切换到 master,进行提交,然后切换回来并从 master 拉取更新。但这似乎很困难,原因有以下三个:

  1. 切换到 master 并不容易,因为许多文件没有在冲突中提交等。(我需要以某种方式使用存储)
  2. 有时我后来意识到,我应该将较旧的提交从 R 推送到 master。
  3. 有时我不希望其他人从大师那里获得其他更新。它们稍后会很有用,但我现在没有时间处理它们。

正确的做法是什么?

4

1 回答 1

1

你可以考虑:

  • (在分支 R)git rebase --interactive:为了重新排序提交,master首先是你想要的,然后是一个具体的R
  • (在分支上mastermerge SHA1(你想要的最后一次提交的正确 SHA1 master

但这会改变R分支的历史,这也可能是其他人克隆它的问题(您需要清楚地传达该事件,要求他们将R分支重置为您更改并推送的新分支)。

于 2013-05-11T00:31:47.810 回答