问题标签 [git-branch]
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.
svn - 将整个 Git 存储库导出到 SVN,包括分支
长话短说,我有一个带有多个分支的 git 存储库,我想将其移至 SVN 存储库,同时保留所有分支和提交历史记录。
到目前为止,我运气不佳,我发现的大多数方法都没有像我预期的那样迁移分支。(它们被组合,或忽略,或被格鲁吃掉)
我正计划使用 git-svn(本地 git,远程 SVN),从文档中我得到的印象是,以这种方式将 Git 与 SVN 一起使用是非常可能的...... 但没有提供白痴证明教程!
这可能吗?如果是这样怎么办?如果不是,我不明白 git/svn 是什么?
git - 将 git repo 的一个分支推送到一个新的远程(github),隐藏它的历史
我的组织正准备使用 github 发布我们软件的开源版本,但是我不确定解决此问题的最佳方法:
我们有两个分支master和release,master包含一些我们决定不发布的专有组件,release包含我们想要分发的清理版本。问题是,如果我们只是将发布分支推送到 github,则可以通过查看修订历史来检索专有组件。
我正在考虑创建一个单独的存储库,将relase的 HEAD 复制到其中,执行git init
. 并将该存储库推送到 github。但是,我们希望保留从master中挑选某些补丁到将来发布的能力,并将这些更改推送到 github。
有没有办法在不维护两个单独的存储库的情况下做到这一点?
谢谢!
更新:
更具体地说,这是我们目前提交历史的样子:
其中 'o' 是master,专有分支中的提交,'c' 是删除不应发布的内容的提交(通常不是删除整个文件,而是修改现有文件以不依赖专有组件),而 'f' 是master中的修复也适用于发布,因此已被精心挑选。REL 是我们认为可以安全发布的代码的标记版本,没有任何历史记录(即使是以前版本的发布分支,因为在 REL 标记之前并非所有专有材料都已删除)。
git - Git 撤消本地分支删除
我刚刚删除了错误的分支,并进行了一些我需要的实验性更改git branch -D branchName
。
如何恢复分支?
git - git remote prune - 没有像我预期的那样显示修剪过的分支
从手册页:
所以我删除了一堆分支使用
然后跑
但是,只修剪了一个本地分支。其中一些分支是由我创建的,一些是由同事创建的。这是否表明我一开始没有正确跟踪这些分支?
git - Git:如何在不获取的情况下自动将本地分支与远程跟踪合并
想象一下,我有几个分支:master、a、b、c ...
现在我在主分支和“git pull”。这会将所有更改从远程服务器获取到 origin/master、origin/a、origin/b ... 分支并将 CURRENT 分支(master)与 origin/master 合并。但后来我想切换到 A 分支并再次合并来自远程跟踪分支的这些远程更改,而不再次获取更改(因为它们已经在原点/分支中)。
是否有一些更简单的方法可以做到这一点,而不是指定我跟踪的确切远程分支(即自动)?
apache - 如何有效地分支和使用独立服务器(例如 Apache)
如果您使用 rails 或 django,我可以看到分支很容易,它们的开发目录中有开发服务器(django-admin.py runserver)。
目前我正在开发由 Apache (windows) 提供的 php。如果我从我的 php 目录中创建一个分支,我需要编辑 httpd.conf 并添加新分支。
有没有办法让一个分支立即与 apache 一起工作?我希望它是这样的:http://master.project.localhost -> /projects/master
,http://testing.project.localhost -> /projects/testing
我读过主机文件不能有通配符。我必须使用 DNS 软件或其他东西来简化这个过程吗?
此外,我的项目无法运行 i 目录http://project.localhost/master和http://project.localhost/testing,无法正常工作
git - 我可以在 git 中强制执行仅合并分支吗?
我正在使用 git,并且正在设置以下分支来支持我的工作流程:
- release,仅包含已发布的软件,
- 测试,其中包含发布给测试组的软件,
- 发展,这是发展发生的地方,
- some_topic_branch,添加功能等的地方。
主题分支从并合并到开发中。当我们准备好发布测试版时,测试会合并到开发中。当测试版本被批准用于生产时,版本合并到测试中。
这一切都很容易设置,但我想知道 git 中的强制选项。例如,是否可以强制执行一个策略,其中发布分支上的唯一提交是来自测试的合并,从而防止更改直接在发布分支上发生?
git - 建立一个实验室来试验 GIT
我是一个新手(比如 6 个月)Linux 用户。
我使用 Git 已经有一段时间了,现在我想开始学习更高级的东西。我想学习的是各种处理/管理遥控器的方法。
所以我的问题是——如何在本地设置“远程”?是否可以创建两个文件夹,例如:
并将local_branch
文件夹设置为跟踪remote_branch
文件夹,就像remote_branch
在 GitHub 上的存储库一样?
git - 配置本地分支以推送到特定分支
对不起,如果这个问题已经被问过。
我从一个名为“git_lab”的仓库克隆,它有一个名为“test”的分支克隆时我使用“-b myname_test”创建一个名为“myname_test”的本地分支,本地克隆名为“myname_git_lab”
当我执行“git pull”时,它会自动获取并合并从“test”到“myname_test”的更改,但是对于 git push,我需要指定 repo 和分支名称。
$>git 远程显示 git_lab
为“git pull”配置的本地分支:myname_test 与远程测试合并
有没有办法可以配置“为'git push'配置的本地分支”,这样我就不需要指定分支和仓库名称?
git - 阻止将琐碎合并推送到 git 服务器
不久前,我要求我们的开发人员在 push 之前使用 rebase 而不是 merge。消除琐碎的合并使得更容易遵循提交图(即:gitk、git log)。
有时人们仍然不小心做了一些琐碎的合并,然后推送。有没有人有方便或有技巧来编写阻止琐碎合并的服务器端钩子?
通过“琐碎的合并”,我的意思是没有冲突的合并。这是一个示例,这里是对 git 中的简单合并的更好解释。
2010 年 11 月 10 日星期三 01:26:41 UTC 更新:很棒的评论,大家!谢谢你。
- 考虑以下几点:我真正要求人们做的是:
- 如果
git pull --ff-only
失败,做git pull --rebase
而不是git pull
- 如果
- git.git 只有一两个提交者,对吧?从理论上讲,遵循提交图应该很容易,但对我来说它看起来很混乱。
2010 年 11 月 11 日星期四 23:49:35 UTC 更新:
- 这是一些正在进行的工作的要点
- 另一个想法是使用“git push”包装器来防止客户端的琐碎合并
2010 年 12 月 15 日星期三 18:34:52 UTC 更新:
- 阿迪米特鲁克很近!只有一种情况仍未解决:非平凡的合并必须仍然有效。
- 有一个相当完整的测试套件可用,检查一下。
- 我在(?) git mailing list上寻求帮助。