问题标签 [git-rebase]
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:是否有类似每个分支的标签?
我有一些历史重写要做,我想暂时保持我原来的树完好无损。然而,重写的树也应该复制以前使用的标签。有没有比在分支名称前添加标签名称更少的手动选项?
git - 将基于主题分支的分支的更改合并到 git 中的不同主题分支
我的团队正在 git 中开发一个共享主题分支,我将其称为“topic1”。我正在对由 topic1 构成的分支上的一些代码进行重构,我将其称为“重构”。我一直在定期将 topic1 合并到重构中,以便我可以及时了解更改,但没有将重构合并回 topic1,因为重构仍在进行中。
还有另一个主题分支,我称之为“topic2”,它是最近从 master 创建的。我想做的只是将我对“重构”所做的更改合并到一个由 topic2 构成的新分支,我将其称为“topic2_refactor”。(即提交中的更改只能通过重构访问,但不能通过 topic1 访问。)
我知道如何看到这些变化:
所以我想做的是这样的——但这种语法不正确:
然后这个:
或这个:
(以上似乎导致了不必要的合并冲突,因为 master 上发生了一些更改,后来又合并回了重构分支。)
我希望有一种干净的方法来做到这一点,并避免不必要的合并冲突,这些冲突后来在“重构”分支的历史中得到解决。这可能使用 git rebase、git filter-branch 等吗?
git - 我需要在我的主分支中弹出并丢弃一个“中间”提交。我该怎么做?
例如,在以下 master 分支中,我只需要删除提交 af5c7bf16e6f04321f966b4231371b21475bc4da,这是由于先前的 rebase 导致的第二个:
我需要维护
- 第一次提交 60b413512e616997c8b929012cf9ca56bf5c9113,
- 第三次提交 e6523efada4d75084e81971c4dc2aec621d45530 和
- 最后一次提交 414ceffc40ea4ac36ca68e6dd0a9ee97e73dee22
“扔掉”只是第二次提交af5c7bf16e6f04321f966b4231371b21475bc4da
我怎样才能做到这一点?提前感谢卢卡
git - 推荐用于测试和生产实例的 git 工作流
虽然我用git已经有一段时间了,但我仍然认为自己是n00b,所以请不要对我太苛刻。
我正在维护一个“公司”大型机系统作为两个不同的副本。我们称它们为测试和生产。大型机没有任何我(或者可能是你们中的任何人)会认为是版本控制系统的东西,所以我在桌面上使用 git 来为我提供版本控制。以下是我当前工作流程的主要特点:
桌面和大型机与 FTP “同步”。最后,所有的开发工作,无论是写在大型机上还是 PC 上,最终都在 PC 上的一个 git 分支中结束。
我无法使用任何类型的“现代”部署技术,例如 Hudson
我有两个主要分支,分别称为 Test 和 Prod。由于产品的(继承)结构,Test 和 Prod 实例之间的代码存在许多差异。例如,所有的显示面板都需要清楚地识别这是 Test 还是 Prod,但是没有办法在一个点上进行配置。
我通常为特定的开发子项目创建其他临时分支。
一般开发是在测试分支上完成的,有多个提交。准备就绪后,这些内容会被挑选到 Prod 上,并标有更改编号,并在获得批准后上传。
幸运的是,紧急工作很少在 Prod 分支上完成,并被挑选到 Test 上。
有时,挑选樱桃需要手动合并。
我想改进这个工作流程。目前,我的存储库在两个分支上充满了并行相同的更改。
我想我更愿意这样做(对于测试->产品):
开发准备好后,在产品 HEAD 处创建一个新分支
将这组开发更改折叠为新分支上的单个更改
将这个新分支合并到 Prod。请记住,它们的共同祖先是在使 Test 与 Prod 不同的更改之前
看起来这git rebase -i
可能会完成这项工作,但我必须承认那git rebase
是我的脑桥,不知何故,我已经多次搞砸了我的树。
所以我的问题是:
请在产品的限制范围内提出更好的方法。
如果我的首选方法可行,有人可以建议正确的参数
git rebase -i
吗?
git - git pull --rebase
启动情况(没有未推送的更改,>
表示当前分支):
git fetch
日志结构通常看起来像
现在git rebase origin/master master
经常产生冲突。是否git pull --rebase
更聪明,并且仅用于git reset
makemaster
也指向E
if master
==origin/master
最初?
git - Git rebase - 合并冲突时强制覆盖
我正在尝试git rebase
将数据迁移到断开连接的 SVN 克隆分支。
假设我正在尝试使用Github 的 SoundManager2 存储库。
大约前 20 个 rebase 操作可以正常工作。之后,它将开始遇到一些冲突。它们中的大多数会自动解决,但无论如何它都会让我停下来继续。
在这种情况下,我不在乎冲突是什么。我只想用最新的文件覆盖任何冲突的文件。我试图让不同的合并策略起作用,但没有成功。
有什么想法或想法吗?谢谢。
git - 检测 git rebase 上的冲突
我正在编写一些执行 git-rebase 的脚本,并且需要识别何时发生冲突。
Git-rebase 对于每个错误都会以相同的退出状态终止,所以我不能使用它的退出状态来检测冲突。一个名为的目录rebase-apply
是在冲突时创建的,但它似乎是一个我不能依赖的实现细节(例如,过去该目录具有不同的名称)。
是否有可靠的方法来检测 git-rebase 因冲突而终止?
git - “git rebase origin”与“git rebase origin/master”
我不明白 和 之间的git rebase origin
区别git rebase origin/master
。就我而言,我克隆了一个 git 存储库两次。在第一个克隆中我必须使用git rebase origin
,而在另一个克隆中我必须使用git rebase origin/master
.
一个例子: http: //paste.dennis-boldt.de/2011/05/11/git-rebase
git - git rebase:“错误:无法统计'文件':权限被拒绝”
我正在使用 git,并做了一个小提交,然后是一个大提交。我决定git rebase
在推送它们之前将两个提交压缩在一起。(我以前从未这样做过。)
所以我做了:
git rebase -i HEAD~2
这给了我我的编辑器,在那里我选择了较早的提交并压缩后的提交。当我保存时,git 说:
错误:无法统计“文件名”:权限被拒绝
无法为以后的提交应用 sha1 ...该提交的初始文本行
现在:
- 当我这样做时,两个提交都没有出现
git log
。 git status
告诉我我“目前不在任何分支上”。- 一个文件被列为已修改并在索引中,两个文件被列为未跟踪。我的第一次提交只有一个文件(我认为),而我的第二次提交有十几个。
发生了什么!?我如何解决它?
git-rebase - 重新设置自分支以来重写的 git 分支
我有一个 git 存储库和两个分支master
和st
(从 分支master
)。我想重新定位st
到master
. 然而,master
已经被其他人大规模重写,坦率地说我不知道为什么,但我们被提示到fetch
新的master
和reset --hard
我们的私人分支。
如果我尝试git-rebase
列出需要手动合并的非平凡冲突文件跨越两个屏幕页面。我知道实际的变化并没有那么大。一方面,该st
分支只涉及少数文件(我猜不超过十个)。
除了变基,我尝试创建一个补丁并应用它,但也有一些冲突,我不知道如何解决。