- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在分支 master
中有一个文件 foo
。它需要一些工作,所以我创建了分支 bar
,我在那里做了一些工作。事情看起来令人满意,所以我准备 merge 回 master
。只有一个问题:我想保留我在分支 bar
中所做的所有更改以供将来引用,但并非所有更改都属于 master
,反正现在不.但是如果我进行通常的 merge ,git 将看不到任何冲突——因为 master
中的文件 foo
没有被编辑——并且只会进行 merge 。有没有办法强制 git 执行此 merge ,就好像存在我需要解决的冲突一样?或者是否有其他方法可以将 bar
中选定的更改放入 master
中?
最佳答案
有几个选项。直接回答您问题的那个:
git merge --no-commit
将自动 merge 到索引然后停止,就像需要手动解决冲突一样。当然,不会有冲突标记,也没有“未暂存”/等待解决的更改,但您可以在提交前修改提交以查看您想要的样子。
最大的问题是,除了“这可能是一团糟”之外,就 git 而言,bar
中的所有更改都是如此。现在占 master
.由于您暗示您稍后可能需要剩余的更改,所以这不好。
你真正想要的是类似的东西
x --- O --- M <--(master)
\ /
A --- B <--(bar)
哪里O
是原来的分支点,A
有你现在想要的改变,B
具有您稍后需要的更改。
(或者,如果你想避免 merge 提交,你会想要
x --- O --- A <--(master)
\
B <--(bar)
代替。)
如何最好地做到这一点取决于您现在拥有的东西。如果bar
只有一个提交(或者,在任何情况下,如果你很高兴最终只有一个“提交 merge ”和一个“提交保存以备后用”),并且如果 master
上没有提交在 O
之后,你可以这样做:
开始于
x --- O <--(master)
\
AB <--(bar)
你会
git checkout bar
git reset --mixed HEAD^
(假设在 bar
上实际上只有一个提交;否则,将 HEAD^
替换为提交 O
的 SHA1 值或您在提交 O
上放置的标记)。现在你有
x --- O <--(master)(bar)
^HEAD
包含来自 bar
的所有原始更改在你的工作树中未被追踪。因为所有的更改都在一个文件中,所以我们需要使用补丁模式来有选择地添加更改
git add -p
# select the changes to merge
git commit
git stash
给你
x --- O <--(master)
\
A <--(bar)
\ ^HEAD
B <--{stash}
接下来
git checkout master
git merge bar
如果您想要 merge 提交(保留在 bar
上进行更改的拓扑),则传递 --no-ff
到 merge
命令。否则,因为我们假设 master 没有偏离 bar
, 你会得到一个快进离开
x --- O --- A <--(master)(bar)
\ ^HEAD
B <--{stash}
(相反,如果 master
有 分歧但您决定线性化历史,您会将 A
rebase 到 master
而不是 merge ...)
然后你可以做类似的事情
git branch --delete bar
git stash branch bar
结束于
x --- O --- A <--(master)
\
B <--(bar)
关于git - 如何强制 git 进入 "merge conflict mode"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43762558/
Postgres 10 和 11 的插入规范说: ON CONFLICT [ conflict_target ] conflict_action 我有一张 table : create table c
我的理解是conflict serializable 隐含serializable。我不确定这如何让他们与众不同。可序列化是否意味着冲突可序列化? 最佳答案 冲突可序列化是可序列化的一个子集,因此仅仅
在数据库理论中,“冲突可序列化”和“冲突等价”有什么区别? 我的教科书有一节是关于冲突可序列化的,但掩盖了冲突等价性。这些可能都是我熟悉的概念,但我不熟悉术语,所以我正在寻找解释。 最佳答案 DBMS
我有一个项目一直在 Xcode 4.4.1 中进行,我想回到以前的分支。(注意分支并不复杂,而是代表线性发展) 当我选择上一个分支时有一个警告 UserInterfaceState.xcusersta
我得到了一个 environment.ubuntu.yml文件,以便能够创建 conda 环境。但是,运行 conda create env --file environment.ubuntu.yml
我浏览了互联网,找不到我的问题的清晰简洁的答案。我想知道如果我将相同强度的信号驱动到同一根电线上会发生什么,其中一个是逻辑 1,另一个是逻辑 0?如果我想要一个“获胜”的信号,因为没有更好的词,我该怎
我在2个网站上有2个不同的图片: http://www.siteA.com/avatar.png http://www.siteB.com/avatar.png 如果我创建具有2个起源的Amazon
我正在 Labview 中开发一个数据采集程序,该程序使用多个转换阶段、相机、高速数字化仪和其他仪器。我正在一台计算机上开发该应用程序,并将其部署到另一台计算机上。开发计算机有labview 2013
能否请您帮助我理解为什么乐观并发更新会有这样的结果。 比如说,我有以下文件: { "phrase": "some phrase", "id": "5d1341797e2ed599", "_
我想安装这两个包: “anahkiasen/前任”:“开发大师” "vespakoen/menu": "dev-master" 但是 composer 说它们每个都依赖于这个包的不同版本: "anah
我在运行 powershell 时遇到以下错误 $thumbprint=$(az webapp config ssl upload --certificate-file $Path --certifi
我不太确定这是否是我使用的 SQLite 版本的问题。但实际上我并没有直接使用 native SQLite (dll),我使用的是 System.Data.SQLite 版本 1.0.108.0 看起
我有一个具有 iBeacon 服务和标准 BLE 服务的芯片。 我想使用 iBeacon 服务在进入 BLE 信号范围时触发我正在开发的应用。 激活后,我希望应用程序使用 CoreBluetooth
建表语句: ? 1
我使用此链接中的示例创建了测试 Telegram 机器人控制台应用程序 https://github.com/TelegramBots/Telegram.Bot.Examples 这是我的主要 pub
我有这个 hpp 文件: struct rte_spinlock_t; class A { public: void init(); private:
我已经从 GitHub 中提取了文件。现在我需要创建一个合并冲突。 如何在 GitHub 上故意创建合并冲突? 最佳答案 在两个分支中编辑同一行,并尝试合并 Merge conflicts in gi
我是这个 repo 的管理员。在这个 PR 中,我删除了多个文件并将这些更改从本地合并到源/开发。将 origin/develop 合并到 origin/master 时,我遇到了我删除的四个文件之一
我使用 Azure 表存储从 MVC 应用程序记录访问者信息,但有时会引发以下异常: [WebException: The remote server returned an error: (409)
我有一张 table : create table c ( e text not null, m text not null, p numeric not null,
我是一名优秀的程序员,十分优秀!