c++ - git 和 C++ 工作流程,如何处理对象和归档文件?

标签 c++ git workflow

我使用 git 与 SVN 存储库交互。对于我从事的不同项目,我有几个 git 分支。

现在,每当我使用“git checkout”从一个分支切换到另一个分支时,前一个分支中所有已编译的可执行文件和目标文件都仍然存在。我希望看到的是,从分支 A 切换到 B 会生成一棵树,其中包含我上次在分支 B 上工作时的所有目标文件和二进制文件。

有没有办法在不创建多个 git 存储库的情况下处理这个问题?

更新:我了解可执行文件和二进制文件不应最终出现在存储库中。我对 git 中的所有分支内容对我来说毫无用处感到有点失望,因为事实证明我必须为我想要启动的每个分支克隆我的代理 git 存储库。我已经为 SVN 做过一些事情,并希望避免使用 git。当然,我不必这样做,但它会导致我在切换分支后大部分时间都在做一个新的制作(不好玩)。

最佳答案

你想要的是一个完整的上下文,而不仅仅是分支......这通常超出了版本控制工具的范围。最好的方法是使用多个存储库。

尽管如此,不要担心效率低下... 让您的第二个存储库成为第一个存储库的克隆。 Git 会自动使用链接来避免磁盘上有多个拷贝。

这里有一个小窍门,可以满足你的需求

由于您有单独的 obj 目录,您可以修改您的 Makefile 以使用以下内容使基本位置动态化:

OBJBASE = `git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1\//'`
OBJDIR = "$(OBJBASE).obj"
# branch master: OBJBASE == "master/", OBJDIR == "master/.obj"
# non-git checkout: OBJBASE == "", OBJDIR == ".obj"

这会将您的分支名称转换为 OBJBASE,您可以使用它来构建您的实际 objdir 位置。我会留给您修改它以适应您的环境,并使其对您的 Makefile 的非 git 用户友好。

关于c++ - git 和 C++ 工作流程,如何处理对象和归档文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/655202/

相关文章:

混帐。忽略要提交的更改

workflow - Tridion 工作流程 - 如何在事件处理程序中的事件中获取组件

workflow - 使用 SAP 工作流 "Send Mail"事件发送 HTML 电子邮件

java - 无法在 Java 中释放 Mat 对象

c++ - Qt - 没有滚动条的 QGraphicsView

c++ - 简单阅读的垃圾

git,在所有分支上过滤分支

c++ - 使用 C++ 元编程模板重载运算符

git - Google 的基于主干的开发 - 您是否将代码直接推送到发布分支而不是主干?

github - 自动关闭 GitHub 中拉取请求的问题