我是.git的新手,我正在使用Sourcetree / Bitbucket。我暂时不需要分享我的代码,只是为了跟踪我的项目并允许我撤消或恢复旧版本。 我读了许多指南,但对我来说仍然有些神秘。
我想要使用它的方法是每次我需要添加新功能时从主设备创建一个分支。我想继续在那个分支上工作,当它最终工作时,我想把它合并回主人,然后继续下一个功能。 也许有更好的方式使用它,我愿意接受建议。
我最终遇到了这种情况,因为我必须快速发布一个新版本而我没有时间来修复存储库。后来尝试修复它导致更加混乱。也许是时候寻求帮助;)
这就是我应该做的: - 在29 gen,我想创建一个新的分支" transmitter_fo_nrf24l01 +" - 继续承诺该分支直到5月5日 - 6月6日,创建一个新的分支(来自主人)" added_serial_interface" (我想我在这里失败了)。 - 再次使用12 feb的版本与master合并。 - 为新功能创建一个新分支(来自主人)
今天我无法将added_serial_interface合并到master,因为与5月5日添加的README文件冲突,最后的尝试导致了那个孤独的头......
我现在如何合并主分支中的所有内容?我无法解决冲突。 我不太关心修复所有的历史,但我至少要开始"清洁"现在使用新功能,并了解我的错误。 谢谢!
PS抱歉小图片,如果您使用浏览器放大,您可以看到它的实际尺寸
答案 0 :(得分:7)
为您正在开发的不同功能设置单独的分支是一种很好的做法。如果您在并行分支中独立编辑相同的文件(在您的情况下, master 中的 README ,如 added_serial_interface ),事情就变得复杂了。如果您需要处理相同的文件,单独的分支可能会使事情变得困难。 Git通常会自动合并,但是在不同的分支中编辑相同的文件,您将需要进行一些手动合并。
一般情况下,我会避免在不同的分支中编辑同一个文件。如果必须,请尝试首先将第一个分支的更改合并到第二个分支,然后才在第二个分支中对该文件进行更改。 (您已经更改了 master 中的README。如果您在编辑README之前将该更改从 master 合并到另一个分支中,那么合并将无冲突地工作)< / p>
要恢复您的情况,您需要进行一些手动合并。根据您的操作系统,有一些工具可以通过并排显示文件的两个冲突版本并突出显示差异来帮助您进行合并。 (也许你正在使用的git客户端已经内置了)。手动将文件编辑为最终版本后,您需要提交它以完成合并。 您也可以简单地告诉git使用其中一个分支的版本并忽略其他更改。
看看Git文档:http://www.git-scm.com/docs/git-merge(“如何解决冲突”和“合并策略”)。一开始看起来很复杂,但学习git绝对值得。