没关系,因为他明确设置了基本提交(develop)。myfeature命令运行后,无论之前签出什么,他都会在分支上。
develop是可能跟踪origin/develop您的远程跟踪分支的本地分支。
没有。git checkout -b myfeature,没有明确的起点,将在您的HEAD. 如果你在develop分支的顶端,myfeature将基于develop.
不完全是。myfeature引用与引用提示相同的提交develop。没有什么是“复制”的。当您在myfeature签出时提交更改时,myfeature提示将更新为新的提交。develop不会改变。
如果您想在远程位置查看更改,则需要推送到远程位置。只是合并到本地分支不会对远程端做任何事情。
如果你想“完成”你的功能,git-flow-style,我猜你想要在开发部分合并一个完成的功能:切换到develop、合并myfeature、删除myfeature,然后将现在更新的内容推develop送到origin.
[e] 更多答案:
- 如果我从开发内部分支,那和做的一样;git checkout -b myfeature 在不开发时开发?
新分支从这develop两种情况开始。(git branch工作方式相同,但它不会像git checkout -b那样将您切换到新分支。)
- 为了完成我的功能,我会检查开发 > git pull > git merge myfeature > git push origin (aka origin/develop)?
粗略地说,虽然git push origin并不总是“又名起源/发展”。默认情况下git push origin,将推送所有同名(或已设置为跟踪)分支的本地分支。(您可以使用配置设置更改默认值push.default。)git push origin develop只会将您的本地开发分支推送到源的开发分支,这就是您想要的。
- 如果我在合并之前不拉,我冒着覆盖其他人所做的新提交的风险,对吗?
仅当您强制推动时(说真的,不要那样做)。您可以在合并后进行拉动,但实际上您将合并两次。首先进行拉取效果更好,但如果不这样做,您不会有丢失数据的风险。
当然,如果其他人已将更新推送到origin/develop并且您想要合并他们的更改。本质上,如果你想保持你的特性分支是最新的并且你还没有准备好合并develop到.myfeaturedevelop
- myfeature 是否每个都合并到发布分支中,还是应该总是回到开发中?
在 git-flow 系统中,myfeature应该总是回到develop,而发布分支总是从develop. develop应该是为外部暴露做好准备的更改分支——用于集成测试、候选发布等——以及代表项目当前开发状态的分支。这是所有新事物的起点。你不想在myfeature分支和一些随机发布分支中结束你的工作,但不是主线develop。