如何使用Git在不同平台上拥有不同的工作目录结构?

2024-04-19

在 Windows 上我们有root\folder1, root\folder2, root\folder3。 在Linux上我们有root/folder1/folder2, root/folder1/folder3

我强烈希望不要使用子模块或子树。

还有其他解决方案吗?创建一个分支并将文件重新排列到 Linux 结构是否有效?分支之间的合并有意义吗?

Edit

我读了很多书,尤其是关于分支机构工作流程的书。我现在正在重新考虑 NOT 子模块声明。我担心日常开发人员存储库包含子模块以及似乎需要的复杂性。但是,我认为开发人员不需要子模块,他们可以通过嵌入式存储库满足需求。

Say folder 1, folder 2 and folder3是单独的 git 存储库 -repo 1, repo 2 and repo 3。在 Windows 上,这 3 个存储库是独立的。在 Linux 上,folder 1 is repo 1, folder1/folder 2 is repo 2, etc.

如果我在folder 1并且有变化folder 2,将git add .不包括folder2 改变?当 git 看到另一个时是否会停止.git?

可能有 2 个单独的裸存储库用于构建,其中包括 3 个存储库作为 Windows 和 Linux 的适当配置中的子模块。然后可以在这里管理发布分支。但是在什么情况下可以看到分支repo 1, 2 and 3?有人尝试过这样的事情吗?效果好吗?


在符号链接旁边提及 https://stackoverflow.com/questions/17160793/how-to-use-git-to-have-different-working-directory-structures-on-different-platf/17162624#comment24843882_17160793 by mvp https://stackoverflow.com/users/1734130/mvp(注:你可以有Windows 7+ 上也有符号链接 http://en.wikipedia.org/wiki/NTFS_symbolic_link, 也可以看看 ”Windows 中的 Git 符号链接 https://stackoverflow.com/questions/5917249/git-symlinks-in-windows”),这将是一个部署 issue:

即:你会:

  • 您常规的本地克隆
  • 具有正确结构的克隆的副本
  • 一种将该副本中所做的任何修改差异/导入回常规 git 存储库的方法

...所以是的,保持通用的目录结构仍然是最简单的解决方案。


如果我在folder 1并且有变化folder 2,将git add .不包括folder 2改变?

不,它只会考虑任何部分的变更者folder 1, except folder 2内容。

git 看到另一个 .git 时会停止吗?

Exactly.

可能有 2 个单独的裸存储库用于构建,其中包括 3 个存储库作为 Windows 和 Linux 的适当配置中的子模块

注意:一个裸仓库不能包含另一个仓库,因为没有工作树供所述仓库包含......任何东西。

与子模块相反,嵌套存储库根本不会记录在父存储库的分支中。


我怀疑子树更适合我们。

Yes, 子树(自 11.7.1 起成为 git 的一部分) https://stackoverflow.com/a/12668266/6309将涉及 2 个存储库:一个用于 Windows,一个用于 Linux。
每一个都会以正确的结构聚合子树存储库。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用Git在不同平台上拥有不同的工作目录结构? 的相关文章

  • git在Windows和Linux之间切换后强制刷新索引

    我有一个Windows和Linux共享的磁盘分区 格式 NTFS 它包含一个 git 存储库 约 6 7 GB 如果我只使用Windows or 只使用Linux操作 git 存储库一切正常 但是每次切换系统的时候git status命令将
  • GitHub API:标记提交所属(与 git describe --tag 并行)

    我正在使用 GitHub API 进行实验octokit https github com octokit octokit rb红宝石 我的目标是能够提取提交 SHA 所属的 标签 现在我可以使用命令行轻松地执行此操作 gt git des
  • 具有单独 work_tree 的 Git 子模块

    我按照本页上的教程使通过 Git 部署我的网站变得简单 http toroid org ams git website howto http toroid org ams git website howto 到目前为止一切都很好 但是我最近
  • 为什么cherry-pick总是会导致合并冲突?

    我正在从发布分支中挑选特定的提交到我的本地工作副本中 每次我从发布分支中挑选一个提交时 我都会遇到必须解决的合并冲突 即使更改看起来微不足道 例如 const char kApplicationVersion Develop const c
  • `git rm --cached` 和 `git update-index --assume-unchanged` 之间的区别?

    我不明白之间的区别git rm cached and git update index assume unchanged 我知道git rm cached
  • 交互式变基后,本地 Git 分支已偏离原始分支

    我有一个本地分行 CRM ayrshireminis 其中有一些我已推送到原点的提交 origin CRM ayrshireminis 这个分支是从创建的develop大约一周前的一个分支 其他合作者已经在该分支上完成了一周的工作 我想做的
  • 使用 TFS 个人访问令牌克隆 Git 存储库

    我正在尝试以编程方式克隆 git 存储库 我的 ASP NET MVC 应用程序正在创建并启动一个进程 处理进程的代码工作正常 但是当尝试使用本地 TFS PAT 克隆 git 存储库时 身份验证失败 我无法使用 NTLM 或要求用户输入凭
  • 相当于“svn update -r”的 git 是什么?

    我是最近的 git 转换者 能够使用 git svn 将我的分支保留在本地而不干扰 svn 服务器真是太棒了 最新版本的代码中存在一个错误 我想确定一个它起作用的时间 以便我可以使用 git bisect 我找不到正确的命令来及时返回 谢谢
  • Jenkins git 插件 - 有时太慢

    以下内容摘自 Jenkins 日志 00 00 03 135 gt git fetch tags progress email protected cdn cgi l email protection some org some repo
  • 推送时发生 Git 错误 - update_ref 失败

    当我尝试推送本地提交时遇到问题 这可能是在 Android Studio 崩溃时发生的 这是错误 update ref 引用 refs remotes origin master 失败 无法锁定 ref refs remotes origi
  • git - 更新 fork 的 master 并将我的分支重新建立到它之上?

    我分叉了一个 github 项目 然后将其克隆到本地 然后我在新分支中做了一些更改my github the project repo 然后我添加并提交了更改 并推送到我的 github 存储库并提交了拉取请求 所有者已收到我的请求 并希望
  • 代表 Git 存储库的数学结构是什么

    我正在学习 Git 如果我能描述一下代表 Git 存储库的数学结构 那就太好了 例如 它是一个有向无环图 它的节点代表提交 它的节点有代表分支等的标签 每个节点最多一个标签 没有标签使用两次 我知道这个描述不正确 我只是想解释我正在寻找的内
  • 远程测试时如何搭建git开发环境

    这似乎是一个愚蠢的问题 但我觉得我对 GIT 相当了解 但我似乎无法按照我的意愿设置我的开发环境 我要么错过了一些非常简单的东西 要么我做错了 我在我的服务器上初始化了一个裸 git 存储库 将其克隆到我的本地计算机 提交我的文件并推送到原
  • Git:显示分支之间的差异,忽略合并的提交

    我的存储库历史记录看起来像这样 x y z branch a b c d e master 我想获得 branch 完整历史记录的单个差异 即 像 git diff 输出 我不想要像 git log p 产生的一大堆差异 而不包括任何从 m
  • git Push over sshfs 失败,并显示“关闭 sha1 文件时出错:错误的文件描述符”

    我们使用 sshfs 通过 SSH 安装文件系统 并将其用作 git 存储库协作的远程存储 Mac OSX 10 6 6 到 RHEL 3 服务器 SSHFS 版本 2 2 MacFUSE SSHFS 2 2 0 MacFUSE 库版本 F
  • Git:发送电子邮件而不提交

    我有一个项目 我做了更改 并想使用 git send email 功能将它们发送给另一个用户 我发现它可以通过发送补丁来工作 由git format patch每次提交 是否可以只发送diff的 我不想先提交 然后发送补丁 是否有gitfo
  • 丢失了我在 GIT 中的提交。你会不小心删除提交吗?

    我正在使用 git gui 但看不到我的分支 我知道我今天检查了一些东西 在完成提交并使用分支查看器验证后 我更改为较早的分支 我对之前的分支进行了更改 然后想返回到当前的分支 但我再也看不到它了 任何帮助都会很棒 回答你的问题 在大多数情
  • git 匹配多个单词的标签

    我们可以得到最后一个 git 标签 它以一个单词 例如 TEST 开头 如下所示 git describe tag dirty match TEST 我想知道如何获得最后一个以 word1 开头的标签orword2 例如测试OR跑步 我尝试
  • Git - 创建拉取请求而不分叉

    使用 git 已经有一段时间了 关于 git pull request 有很多教程和解释 其动机是什么等等 我遇到两种情况 1 分叉 git 仓库 我查看了一些公共 git 存储库并决定我想要做出贡献 所以我 通过以下方式创建重复的存储库F
  • 无法从 Sourcetree 拉取 Git 远程存储库

    我生成了 ssh 密钥并配置了我的 git 和 SourceTree 我可以 git pull 并从 Git bash 执行其他操作 注意 我在 bashrc 中添加了以下内容以使其正常工作 eval ssh agent ssh add 然

随机推荐