gpt4 book ai didi

git - 我如何在git中的多个分支之间共享单个文件

转载 作者:太空狗 更新时间:2023-10-29 14:21:27 25 4
gpt4 key购买 nike

我有a repository包含分支 master 中的软件及其分支 gh-pages 中的主页。该项目包含一个 examples 目录,其中包含应包含在 master 分支中的源文件。主页应包含已编译的示例,可能还包含源文件。如何在两个分支之间共享示例(依赖于 master 分支进行编译)?所需的工作流程是:

$ git checkout gh-pages; ls examples/  # directory is empty$ git checkout master;   ls examples/  # directory contains .tex source filesauthor.tex$ make examples && ls examples/        # compiles .tex files to .png files author.tex author.png$ $MAGIC_COMMIT_TO_BRANCH_SELECTED_FILES gh-pages author.png author.tex$ git checkout gh-pages; ls examples/author.tex author.png

分支 gh-pages 可能已经包含示例,因此只要切换到该分支就会覆盖新编译的文件。编译后的文件不应提交到 master 分支。我考虑过创建另一个分支 examples 但这并没有真正让它变得更容易。如果 git submodule 可以指向特定的分支(它们可以吗?)我可以创建一个 examples 分支,在其他分支中用作子模块。将示例移动到另一个存储库可能有效,但我更愿意将所有示例都保存在一个存储库中。也许有一些 merge 管理器或 cherry-pick 的魔法?

最佳答案

我认为您还没有掌握版本控制的全部内容。至少在我看来,您以错误的方式使用分支。正是困惑的存储库设计导致了您的所有问题。将源代码放在两个分支上没有任何意义,而同时应从一个分支生成编译文件并在另一个分支上提交编译文件,那么您还不如在同一分支上生成和提交编译文件它的生产来源。

看来您正在使用分支而不是使用单独的存储库。如果您从一个分支上的某个源代码编译代码并在另一个分支上提交文件,您如何知道它是从哪个版本的源代码编译的?

我不明白为什么你不能只在一个分支中拥有源代码和编译文件,工作和编译直到你“完成”,然后将更改 merge 到 master 中。然后你在两个分支上有源文件和编译文件,那又怎样? :) 另一种方法是将源代码保留在一个分支中,在源代码上工作,直到您“完成”提交源代码并将更改 merge 到主分支中。查看master分支,编译并提交新的编译文件。

关于git - 我如何在git中的多个分支之间共享单个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3452971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com