在多次错误提交后合并分支

merging branches in after many wrong commits

我是 .git 的新手,我正在 Sourcetree/Bitbucket 中使用它。我暂时不需要共享我的代码,只是为了跟踪我的项目并允许我撤消或恢复到旧版本。 我已经阅读了很多指南,但对我来说还是有点神秘。

我想使用它的方式是每次需要添加新功能时从master创建一个分支。我想继续致力于该分支,当它最终可以工作时,我想将它合并回主分支,然后继续下一个功能。 也许还有更好的使用方法,我愿意接受建议。

我最终遇到了这种情况,因为我必须快速发布一个新版本,而我没有时间修复存储库。后期修复它的尝试导致了更多的混乱。也许是时候寻求帮助了;)

这是我应该做的: - 在 29 代,我想创建一个新分支 "transmitter_fo_nrf24l01+" - 继续致力于该分支直到 2 月 5 日 - 2 月 6 日,创建一个新分支(来自 master)"added_serial_interface"(我想我在这里失败了)。 - 在 2 月 12 日的版本中再次与 master 合并。 - 为新功能创建一个新分支(来自 master)

今天我无法合并added_serial_interface到master,因为与2月5日添加的README文件冲突,最后的尝试导致那个孤独的头...

现在如何合并主分支中的所有内容?我无法解决冲突。 我不太关心修复所有历史记录,但我想至少现在就开始 "clean" 使用新功能,并了解我的错误所在。 谢谢!

PS抱歉图片太小了,用浏览器放大可以看到真实大小

为您正在处理的不同功能设置单独的分支是一种很好的做法。如果您在并行分支中独立编辑同一个文件,事情只会变得复杂(在您的情况下 READMEmaster 中与在 added_serial_interface)。如果您需要处理相同的文件,不同的分支会使事情变得困难。 Git 通常会自动合并,但如果在不同的分支中编辑同一个文件,您将不得不进行一些手动合并。

一般来说,我会避免在不同的分支中编辑同一个文件。如果必须,请尝试先将第一个分支的更改合并到第二个分支,然后才在第二个分支中对该文件进行更改。 (您已经更改了 master 中的 README。如果您在编辑 README 之前将 master 中的更改合并到其他分支中,则合并将在没有冲突的情况下工作)

要恢复您的情况,您需要进行一些手动合并。根据您的 OS,有一些工具可以通过并排显示文件的两个冲突版本并突出显示差异来帮助您合并。 (也许您正在使用的 git 客户端已经内置了该功能)。手动将文件编辑为您想要的最终版本后,您必须提交它才能完成合并。 您也可以简单地告诉 git 使用其中一个分支的版本并忽略其他更改。

查看 Git 文档:http://www.git-scm.com/docs/git-merge("HOW TO RESOLVE CONFLICTS" 和 "MERGE STRATEGIES")。乍一看很复杂,但学习 git 绝对值得。