我使用所谓的“Git Flow”,这意味着有一个“开发”分支,收集所有团队成员的所有工作结果,而每个开发人员创建一个“功能”分支,并发出一个pull request,以将功能分支放入“开发”,而功能分支被删除。
如果我现在执行'git pull',然后执行'git checkout develop',我会返回到本地开发分支的最后一次提交,这是较旧的,只有另一个'git pull'将我的本地文件更新到远程的' develope '中。我讨厌的是当从我的功能分支返回到' develope '时,这种获取旧文件的行为,只是为了在发出第二个'git pull'后更新到最近的文件(我已经有了一分钟左右)。
所以,问题是,如果我只想立即切换到“develope”,切换到远程的最新提交,有没有办法避免在我的工作目录中来回移动文件?
2条答案
按热度按时间9bfwbjaz1#
你根本不应该有一个本地的
develop
分支。删除它。现在就删除它。它只会让你的生活变成一个地狱,正如你的问题所暗示的那样。您所需要的只是自动生成的远程跟踪分支
origin/develop
,而且您已经拥有了它,因为它是自动生成的(等待它)。所以现在
origin/develop
,只需输入git fetch
(无论您在哪个分支)。develop
变更合并到你当前的特性分支中,那么在说git fetch
之后,说git merge origin/develop
。或者,如果你还没有推送你当前的特性分支,并且你想假装它是从develop
的最新状态中出现的,那么说git rebase origin/develop
(但这更危险)。(And永远不要再说
git pull
了。)关于我如何做git flow的更完整的解释,请参阅我的文章:https://stackoverflow.com/a/72201388/341994
jhdbpxl92#
git pull
更新(合并或重定基)当前 checkout 的分支。要更新非当前分支,您需要git fetch
。因此,它是或
你可以创建(git或shell)别名、shell函数或脚本来完成重复的任务。
如果当前分支不是
develop
,你可以运行git pull origin develop:develop
。这将运行git fetch origin develop:develop
,然后将develop
合并(或变基)到当前分支中。但是之后无论如何都需要git checkout develop
。