问题标签 [git-subtree]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - git子树推送和拆分添加“-n" 提交消息
每当我通过或(因此?)将子目录拆分为分支git subtree split
时,当我将子树向上游推送时,新分支/上游提交中的提交消息都会带有“-n”和一个换行符。
使用拆分最容易演示:
由此,我得到:
和
如您所见,“splitme-only”分支在提交消息前附加了“-n”。这尤其糟糕,因为 github 默认情况下会折叠除第一行之外的所有内容。因此,您不能轻易地在 github 上浏览这些提交消息。
我尝试过使用--annotate
可能会获得更具可读性的内容,但这只是在“-n”行中附加了一些内容。
的行为是相同的subtree push
。
有什么方法可以防止添加“-n”行吗?我可以重新调整这条线,但是当我玩弄它时,它破坏了子树的合并。难道我做错了什么?
在 OS X 10.8.4 上使用 git 1.8.3.4。
git - Git:一个文件夹中有多个子树/子模块?
在本地机器上,我有几个项目导入的通用脚本,例如:
常见的脚本和项目在单独的 git 存储库中进行跟踪。这适用于我的个人工作,因为我可以克隆所需的所有存储库。当通过 git 公开项目时,我可以通过子树或子模块包含公共文件(对公共文件的引用显然在 B1.py 中更新):
现在我想组装一个超级项目(目标):
使用子树和子模块,我已经能够实现:
然而,这是相当多余的,并且通过 sub-x 链传播更改将是乏味的。如何在保留将更新拉到项目和公共文件的能力的同时实现上述目标目录结构?对于它的价值,我不希望需要将子树/子模块更改推送到上游。
不需要在两个操作系统上进行独立配置的跨平台 (Windows-UNIX) 解决方案的奖励。基于 Git 的解决方案更可取。
git - 如何使用 git subtree 推送标签?
我已经使用 git-subtree 成功创建了一个由几个子存储库组成的大型存储库,假设 Master 包含 Slave1 和 Slave2。
主/从1/从2/
现在我想在 Master 上添加标签并将每个标签推送到从仓库,我该怎么做?
如果我“git push Slave2 --tags”会传输整个标签,但我只希望传输与 Slave2 相关的文件。
你可以用 git-subsplit 来实现它,但老实说有点不切实际而且速度很慢。
有什么建议吗?
git - git子树合并忽略--prefix
我在 Windows 上使用 git 1.8.3 时遇到了一个奇怪的错误。使用git subtree
,我将一个文件在两个项目之间共享并将其推送到另一个存储库。
所以,在 repo1 我这样做了:
在这两个 repos 中,shared-repo
指的是包含共享代码的远程。共享代码将驻留在同名目录中。
在 repo2 我这样做了:
我期望它做的是获取共享文件并将其放在目录下的 repo2 中./shared-dir/
。发生的事情是该文件被放在存储库的根目录中!
将文件移动到正确的文件夹,提交和执行类似于 repo1 的推送脚本的内容会导致推送被拒绝,因为它表示推送不是快进的。再次运行拉取脚本表明一切都是最新的。
我被踩到了,在互联网上搜索并没有发现其他人有类似的问题。出了什么问题,我该怎么办?
更新: Ubuntu 12.04 上的 git 1.7.9.5 也发生了同样的情况,两周前该git-subtree
脚本取自 git 存储库。我也改变了命令说--prefix=./shared-dir/
无济于事。
有趣git subtree
的是,创建shared-dir
目录,但将共享文件放在根目录而不是该目录中。
git - multiple git subtrees from multiple repos, offsetting the directory layout
say I have 2 different git repos:
so far I only managed the following (with sparsecheckout):
But I'd really like to be able to assemble them in the following fashion:
and still be able to commit changes in work-repo/dir11 back to repo-1/dir11, ditto for /dir22 and /dir23.
is it possible to achieve such a thing with git-subtree ? (or any other git extension/command)
git - 将现有 Git 存储库拉入具有完整历史记录的子树(无压缩)
我们目前在我们的组织中使用 TFS,但正在研究 TFS 2013 的内置 Git 支持。我想从 TFS 中提取一个现有分支及其所有历史记录到 Git 中一个不同命名的子文件夹中(是的,我意识到为每个分支创建一个单独的 Git 存储库会更好,但是“出于某种原因”我不能做那件事)。
所以我使用 git-tfs 将 TFS 历史克隆到一个新的 repo 中。任何 Git 更改都不会被推回 TFS,所以那里没有问题。
然后我在本地克隆了新的 repo 并将oldtfs添加为远程。
接下来,我首先尝试使用子树合并将提交从oldtfs拉到newtfs并在本地提交。
它似乎运行良好(“git log”在正确的位置显示了所有历史记录)但是当我推回 TFS 时,它似乎只是一个合并提交,尽管它确实有两个父级,正如我所期望的那样。之后多读一点,听起来我需要一个变基。
所以我在newtfs中创建了两个分支import和squash。我在import中执行了子树合并,然后重新设置为squash。
然而,这样做的结果是import现在在其根目录(不是 /MyProject/MyDir)中包含所有原始 TFS 提交,并且squash似乎不受影响。
接下来,我尝试使用来自 contrib 的新“git subtree”脚本(在远程 TFS 的新克隆中)
同样,在本地看起来很棒,但推回 TFS 服务器显示所有内容都压缩到一个子树提交中(但同样有多个父级)。
最后,我尝试了将 git subtree 变基为具有共同祖先的第二个分支。和以前一样的问题:我导入的提交不再在子目录中。
那么我对rebase的理解是不正确的,还是只是子树合并和子树脚本不兼容?
我的下一个方法是在导入或变基之前尝试filter-branch重写oldtfs (同样, oldtfs在达到导入目的后将永远不会被共享/上传)。这是这里最好的选择吗?
(我想“做对”的原因是我想发布一个可重复的配方或脚本供部门中的其他人以类似的方式使用)。
git - Git 子树推送会导致对象计数过长。如何避免这种情况?
我在我的项目中添加了一个子树,如下所示:
我设置了这些遥控器:
Git 状态显示没有变化。
在主分支上,我编辑子树目录中的 README.md。
我承诺:
我尝试将其推送到 migrate-hrweb-github 远程:
现在我必须等待这么长的对象计数完成(5 分钟)。主项目是一个大型 Drupal 安装。我认为每个对象都被计算/过滤:
最后我得到:
如何避免每次提交时对对象计数的长时间等待?(我猜答案可能与'git subtree split'有关......?)
git - 使用 git subtree 部署构建目录
我在我的项目中使用 Ant 构建脚本来创建一个名为“发布”的构建目录一旦我运行构建并使用我添加的新构建更新我的发布文件夹,然后提交并最终将其推送到我在 github 上的远程仓库。
将发布文件夹添加到项目后,我在本地计算机上运行 Yeoman 建议的此命令。
在初始执行时,它会将我的发布文件夹部署到它自己的名为“deployment”的分支。</p>
每当我再次运行构建、添加文件、提交文件并将文件推送到远程仓库,然后在本地再次运行该子树命令时,我都会被拒绝。
这种工作流程的最佳方法是什么?
git - Git:切换分支时可以将子树指向不同的提交吗?
在具有两个分支(master 和 develop)的存储库和文件夹中包含的 git 子树存储库中shared
,是否可以shared
在更改分支时自动将子树同步到特定版本(提交)?
我最好的猜测是,每当我在本地更改分支时,我可能正在寻找一种运行脚本的方法。然后该脚本在子树上执行必要的 git pull/fetch 命令。
假设主分支应该始终指向共享子树存储库的 v1.0 标记提交,而开发分支始终签出最新提交。对共享子树的编辑仅在开发分支中进行,并将在切换到主分支之前提交(或隐藏)。
git - is git submodules what I need?
I have two repositories for two websites, but those two websites share the same framework.
I wanted to make a dedicated repository for the framework itself but I'm not sure how would that work.
What I currently do is that I develop the framework within website1 and then copy it to website2 each time I add new features. As you can see it's not very effective...
I would like a separate repository for the framework, but I still need it to be within one of the two websites so I can keep working on it. The most important part is that I need to be able to deploy it to the other website in a simple way
What is the best solution for me? How can this be achieved?
PS: I'm using SourceTree with Bitbucket quit intensively for the past months so I'm fairly familiar with git, but I have never used the command line.