问题标签 [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.

0 投票
2 回答
162 浏览

svn - 将整个 Git 存储库导出到 SVN,包括分支

长话短说,我有一个带有多个分支的 git 存储库,我想将其移至 SVN 存储库,同时保留所有分支和提交历史记录。

到目前为止,我运气不佳,我发现的大多数方法都没有像我预期的那样迁移分支。(它们被组合,或忽略,或被格鲁吃掉)

我正计划使用 git-svn(本地 git,远程 SVN),从文档中我得到的印象是,以这种方式将 Git 与 SVN 一起使用是非常可能的...... 但没有提供白痴证明教程!

这可能吗?如果是这样怎么办?如果不是,我不明白 git/svn 是什么?

0 投票
2 回答
3951 浏览

git - 将 git repo 的一个分支推送到一个新的远程(github),隐藏它的历史

我的组织正准备使用 github 发布我们软件的开源版本,但是我不确定解决此问题的最佳方法:

我们有两个分支masterreleasemaster包含一些我们决定不发布的专有组件,release包含我们想要分发的清理版本。问题是,如果我们只是将发布分支推送到 github,则可以通过查看修订历史来检索专有组件。

我正在考虑创建一个单独的存储库,将relase的 HEAD 复制到其中,执行git init. 并将该存储库推送到 github。但是,我们希望保留从master中挑选某些补丁到将来发布的能力,并将这些更改推送到 github。

有没有办法在不维护两个单独的存储库的情况下做到这一点?

谢谢!

更新:

更具体地说,这是我们目前提交历史的样子:

其中 'o' 是master,专有分支中的提交,'c' 是删除不应发布的内容的提交(通常不是删除整个文件,而是修改现有文件以不依赖专有组件),而 'f' 是master中的修复也适用于发布,因此已被精心挑选。REL 是我们认为可以安全发布的代码的标记版本,没有任何历史记录(即使是以前版本的发布分支,因为在 REL 标记之前并非所有专有材料都已删除)。

0 投票
10 回答
121264 浏览

git - Git 撤消本地分支删除

我刚刚删除了错误的分支,并进行了一些我需要的实验性更改git branch -D branchName

如何恢复分支?

0 投票
1 回答
124186 浏览

git - git remote prune - 没有像我预期的那样显示修剪过的分支

从手册页:

所以我删除了一堆分支使用

然后跑

但是,只修剪了一个本地分支。其中一些分支是由我创建的,一些是由同事创建的。这是否表明我一开始没有正确跟踪这些分支?

0 投票
4 回答
5555 浏览

git - Git:如何在不获取的情况下自动将本地分支与远程跟踪合并

想象一下,我有几个分支:master、a、b、c ...

现在我在主分支和“git pull”。这会将所有更改从远程服务器获取到 origin/master、origin/a、origin/b ... 分支并将 CURRENT 分支(master)与 origin/master 合并。但后来我想切换到 A 分支并再次合并来自远程跟踪分支的这些远程更改,而不再次获取更改(因为它们已经在原点/分支中)。

是否有一些更简单的方法可以做到这一点,而不是指定我跟踪的确切远程分支(即自动)?

0 投票
1 回答
41 浏览

apache - 如何有效地分支和使用独立服务器(例如 Apache)

如果您使用 rails 或 django,我可以看到分支很容易,它们的开发目录中有开发服务器(django-admin.py runserver)。

目前我正在开发由 Apache (windows) 提供的 php。如果我从我的 php 目录中创建一个分支,我需要编辑 httpd.conf 并添加新分支。

有没有办法让一个分支立即与 apache 一起工作?我希望它是这样的:http://master.project.localhost -> /projects/masterhttp://testing.project.localhost -> /projects/testing

我读过主机文件不能有通配符。我必须使用 DNS 软件或其他东西来简化这个过程吗?

此外,我的项目无法运行 i 目录http://project.localhost/masterhttp://project.localhost/testing,无法正常工作

0 投票
4 回答
6548 浏览

git - 我可以在 git 中强制执行仅合并分支吗?

我正在使用 git,并且正在设置以下分支来支持我的工作流程:

  • release,仅包含已发布的软件,
  • 测试,其中包含发布给测试组的软件,
  • 发展,这是发展发生的地方,
  • some_topic_branch,添加功能等的地方。

主题分支从并合并到开发中。当我们准备好发布测试版时,测试会合并到开发中。当测试版本被批准用于生产时,版本合并到测试中。

这一切都很容易设置,但我想知道 git 中的强制选项。例如,是否可以强制执行一个策略,其中发布分支上的唯一提交是来自测试的合并,从而防止更改直接在发布分支上发生?

0 投票
2 回答
86 浏览

git - 建立一个实验室来试验 GIT

我是一个新手(比如 6 个月)Linux 用户。

我使用 Git 已经有一段时间了,现在我想开始学习更高级的东西。我想学习的是各种处理/管理遥控器的方法。

所以我的问题是——如何在本地设置“远程”?是否可以创建两个文件夹,例如:

并将local_branch文件夹设置为跟踪remote_branch文件夹,就像remote_branch在 GitHub 上的存储库一样?

0 投票
2 回答
18218 浏览

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'配置的本地分支”,这样我就不需要指定分支和仓库名称?

0 投票
2 回答
5520 浏览

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 更新

2010 年 12 月 15 日星期三 18:34:52 UTC 更新