git,如何处理代码执行的分支

时间:2011-03-22 14:50:51

标签: git

我为我的工作做了一堆数据分析。分配这需要我执行可能需要数小时的代码。当代码仍在执行时,我希望能够分支代码并进一步开发代码。我可能也想要并行执行轻微的不同分支。这个问题是它基本上要求我将分支的代码复制到一个新目录,这样我的更改不会影响母分支的执行,或者不会覆盖并行运行的不同分支的输出文件。显然,没有任何版本控制,处理所有这些版本及其更改是一件痛苦的事。

最近我开始使用git,它很适合我,直到遇到如上所述的情况。我没有太多使用外部存储库(拉/推)的经验,但我怀疑这可以使用本地外部存储库来解决。 你会如何处理这种情况?

4 个答案:

答案 0 :(得分:3)

只需克隆你的回购。然后,您可以在主仓库和克隆之间进行推拉。请查看git clonegit pushgit pull

答案 1 :(得分:2)

有两个选项:您可以拥有一个本地“主”存储库,然后使用该主存储库作为其远程设置一堆卫星“客户端”存储库,或者您可以简单地将一堆本地存储库全部指向在真正的遥控器上。

我确定你知道怎么做后者(来自不同目录的一堆git clone),这里是设置前者的说明:

克隆遥控器。这将是您的聚合点或“主”存储库。最好让它裸露(没有工作树)以避免混淆:

git clone --bare ssh://user@host/path/to/repo.git repo.git

然后将多个客户端设置为该客户端:

git clone file:///path/to/local/repo.git

每个人都可以在自己的分支上做自己的事情。当您对其中一个客户端进行更改时,请执行git push以推送到聚合点,然后从聚合点执行git push到服务器。从其他客户端,您需要执行git fetch来提取您从其他客户推送的新更改。

答案 2 :(得分:1)

我会设置构建过程以将二进制文件复制到源文件夹之外的单独位置,并设置环境以便输出文件也写入单独的位置。保持源树不受生成的数据的影响。

答案 3 :(得分:0)

您需要在单独的文件夹中执行。

git archive | tar

或类似的东西。然后,您可以继续在您的仓库中继续工作。

克隆不是一个好主意,因为你将分散在你的reflog和rerere历史中。如果需要,可以将符号链接返回到特定文件的存储库。

希望这有帮助