好的,我们已经阅读了git书籍,可能还有数百篇或者文章,我们的专家是SCCS,VCS,SVN等,但我们真的很难理解和使用git。
我们在master中完成了所有更改。
我们现在想将master复制到现有的发布分支,但到目前为止已经失败了。
我们知道没有简单的方法可以合并两个分支(其中一个没有变化),并且您无法从主分支中完成。我们知道您必须签出要合并到的分支(发布),合并,然后提交。
我们的本地开发机器有主机检出,显然我们不想触摸/中断/损坏/更改这些,所以我们从头开始在一个新的地方克隆项目(例如tmp / merge_area / ourproject
接下来我们进入windows explorer中的tmp / merge_area / ourproject并右键单击tortoise git->开关/结帐。
这使我们可以选择“遥控器/原点/释放”,“主人”或“遥控器/ orgigin / master。现在我们感到困惑:
我们不知道上述答案,我们继续:
这给了我们非常恐怖的信息:
Note: checking out 'remotes/origin/release'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
HEAD is now at b35352e..
我们猜测我们做错了,因为这条消息听起来像我们打破了它。
使用乌龟的正确方法是什么?
接下来,我们按照stackoverflow上的一些示例尝试了命令行。
$ git checkout release
$ git merge master
到目前为止,这么好,但下一步是什么?
我们遵循的堆栈溢出示例说明下一步是
$ git push origin release
但我们当然需要先从合并中提交更改吗?如果我们必须解决一些未提交的合并冲突怎么办?
然而,当我们尝试这个时:
$ git commit -m "first try"
我们收到错误:
Your branch is ahead of 'origin/release' by 24 commits.
(use "git push" to publish your local commits)
为什么在本地提交更改的文件会从存储库中提出错误?
答案 0 :(得分:0)
如果您只想将master
中的修改放在release
分支中,则应将master
合并到release
中,如下所示(在命令行中) :
(假设您的分支机构在本地更新)
git checkout release
git merge master
(这可能只产生一个快进,意味着master和release分支将指向同一个提交)git push origin release
你不应该在另一个文件夹中克隆repo,在Git中切换分支很容易。