- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在学习使用 Git,但是,我想保持线性的历史。我刚刚完成我的第一个 功能分支 .
我现在准备将它合并到我的主分支中。
我知道这样做的正确方法是重新设置功能分支或其他内容,然后合并它?无论哪种方式,都有一些合并过程,以便您保留提交历史或其他内容。
我的主分支叫做 大师 .功能分支称为 导入-publictalk-名称 .
发现这个问题:
Merging code branch to master using tortoisegit
所以我想我已经成功地做到了,这可以关闭:
我想我现在已经按照我的喜好成功地做到了:
最佳答案
创建新分支时,您基本上可以并行工作。但是,无论何时合并(如 https://stackoverflow.com/a/38203822/3906760 中所述),来自功能分支的所有更改都会集成到当前分支中。在这一点上,您有一个同步点,它以某种方式将您的更改放入当前分支(主)的历史记录中。 - 以防万一一个文件在两个分支上都被编辑,可能会有冲突,需要在额外提交完成合并之前解决。
当您的 master
上没有额外的提交时分支(参见图 1),正常合并将导致一条直线,该直线与主分支上的任何提交都无法区分(主分支标签将仅分配给功能分支提交,参见图 2) .如果你想在日志上看到一条平行线,它通过合并提交被光学合并到主分支(一个提交有两个父级而不是只有一个,参见图 3),你需要启用“没有快进"合并选项。 - 如果在主分支上有并行提交,您将始终获得合并提交(除非您选择“仅快进”)。 - 作为一个侧节点:图 2 和图 3 中的文件具有所有相同的内容,唯一的区别是 git 中的元数据。
此外,有些人不喜欢提交在您的屏幕截图中在视觉上交错。从 git 的角度来看,正常合并非常好。但是,如果您想拥有一连串的提交,则需要将您的功能分支重新设置在您想要将更改合并到的分支之上(那么您就是图 1 的情况)。之后合并 rebase 分支(如快进合并或非快进合并)。
为了使您的历史线性化,“只需”通过“硬重置”将 master 重置为最后一次提交(并行提交,参见图 4)来恢复合并。然后检查您的功能分支并将其重新设置在 master 之上(单击日志对话框中的 master 分支,然后单击“Rebase ... on this ...”。然后您就有了图 1 的情况,您可以再次合并。
图1. reorder-commits
上的简单开发在 master
上没有并行提交的分支:
图2.合并reorder-commits
进入 master
使用默认选项(即快进合并):
图 3. 合并 reorder-commits
进入 master
使用“非快进”选项,请注意带有“合并分支...”消息和两个父提交的合并提交:
图 4. 通过(硬)重置 master
来“恢复”您的分支,使历史再次线性化分支到原来的位置。
关于tortoisegit - 使用 TortoiseGit 正确合并功能分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41794529/
我确实需要拉取很多东西,现在我需要点击 Git Pull,点击 OK 然后它就可以拉取了。是否有跳过此窗口的选项?我从不更改拉取选项,所以它对我没有用。 我已经搜索了设置,但我无法在任何地方找到它..
我经常提交到本地分支并在它们之间切换,而不是立即将提交推送到远程分支。有时我想查看在相应远程分支之前的所有 提交。基于此,我想将一些分支推送到远程。 特别是我想用 TortoiseGit 获得一个列表
我正在学习使用 Git,但是,我想保持线性的历史。我刚刚完成我的第一个 功能分支 . 我现在准备将它合并到我的主分支中。 我知道这样做的正确方法是重新设置功能分支或其他内容,然后合并它?无论哪种方式,
如何在 TortoiseGit 日志对话框中设置默认日期范围? 在TortoiseGit Manual的过滤日志消息中提到: A default limitation for From can be
这个问题在这里已经有了答案: Create a git patch from the uncommitted changes in the current working directory (8 个
好的,首先我已经设置了 SSH key ,我没有被要求输入密码,这不是另一个身份验证问题 ! 但我仍然被问到这个问题:每次我想拉或推我的代码时,在对话框中“登录为”。我怎样才能让它消失? 最佳答案 我
既然 TortoiseGit 支持工作树,我该如何通过 UI 创建工作树? 最佳答案 尚不支持创建工作树(从 2.6.0 开始)。 TortoiseGit 仅支持使用 CLI 创建的用于日常操作(覆盖
如何从命令行显示存储库或存储库中指定文件的标准 TortoiseGit 日志窗口? 最佳答案 如果您当前位于工作副本目录中,则可以运行以下命令: TortoiseGitProc /command:lo
native git 允许 partial commits :您可以只提交文件的某些行,而将其余行留待以后提交。 这在 TortoiseGit 中可能吗? 最佳答案 是的,有official inst
我一定是漏掉了什么。 我是一个 git 新手。当我对单个文件执行切换/ checkout (恢复到以前的版本)时,我无意中创建了一个分支。 然后我尝试合并正确的分支。但是文件有冲突,所以我取消了。现在
我一定是漏掉了什么。 我是一个 git 新手。当我对单个文件执行切换/ checkout (恢复到以前的版本)时,我无意中创建了一个分支。 然后我尝试合并正确的分支。但是文件有冲突,所以我取消了。现在
我正在尝试创建一个批处理文件来显示特定存储库的 TortoiseGit 同步对话(右键单击“Git 同步...”shell 选项),但我找不到如何操作。我知道如何调用 TortoiseProc 进行日
这是 this question 的 TortoiseGit 版本 如果我有一个现有项目并且我想将它添加到 Git 版本控制并立即“检查它”,那么 TortoiseGit 命令是什么? 我在 tort
我们刚刚将 git 存储库更新到了新位置,我正在使用 TortoiseGit 进行一些未提交的更改。我可以在任何地方更改文件夹引用吗?我在上下文菜单中没有看到该选项。如果可以避免的话,我宁愿不重新创建
我使用 TortoiseGit 1.8.16。但是文件夹的上下文菜单不包含“添加到忽略列表”选项。 右键单击存储库中的文件夹。我希望在上下文菜单中看到“添加到忽略列表”。此项不在上下文菜单中。 如何通
我配置了两个 Remote :“origin”和“upstream”。 更改推送默认值很容易,它在设置窗口(“推送默认值”)和推送对话框中(“始终推送到选定的远程分支”)。 但是,我想更改默认的拉取
有 的修补程序版本Tortoise Git 我的电脑拒绝安装它。一直说 Windows 资源管理器 正在运行,即使它没有显示 任务管理器 . 有没有其他方法可以让我安装这个升级? 更新 我决定在 中启
我正在 'master' 分支中开发,想从 'feature-1' 复制一些文件。我怎么能用 TortoiseGit 做到这一点? (我对命令行解决方案不感兴趣。) 最佳答案 tortoisegit
我无法使用 tortoisegit 克隆或获取。输出窗口给出了这些错误: error: cannot spawn sh: No such file or directory fatal: unable
我无法使用 tortoisegit 克隆或获取。输出窗口给出了这些错误: error: cannot spawn sh: No such file or directory fatal: unable
我是一名优秀的程序员,十分优秀!