我们最近从 SVN 切换到 Git,同时将我们的实时系统置于版本控制中(而不是本地检出和文件复制到实时)。
在分配给我的项目中,我们都访问同一个存储库,并将更改生效git pull。这会导致问题,因为我们的 Web 设计人员将更改推送到 VCS 中,而这些更改不应处于活动状态,但应处于 Web 测试环境中。
当其中一位开发人员投入使用时,他将获得所有(可能未完成的)更改。
我想过实时切换到一个额外的分支,然后合并更改的内容,但由于我缺乏 git 知识,我不知道该怎么做。
我的想法是:
git branch live) 中创建一个新分支。git
checkout master; git pull; git
checkout live)git merge master问题是切换到 master 或将所有内容直接拉入实时系统会导致问题,所以我宁愿避免这种情况。
有没有办法做到这一点,或者有没有更好的方法来管理 Live 系统(除了训练 webbies 不要推送未完成的东西)。
Jef*_*f B 251
通过使用以下命令,我能够在另一个分支中工作时从origin/masterinto 中提取更改master:
git fetch origin master:master
Run Code Online (Sandbox Code Playgroud)
要更深入地了解正在发生的事情,请查看此 Stack Overflow问题的出色答案。对我来说主要的收获是这个命令只适用于快进合并。
Tob*_*ler 22
您可以git stash在检出 master 和 pull 之前使用,并在检出 live 后再次使用git stash pop(或者如果您的 git 较旧,git stash apply并且git stash clear假设您没有藏任何东西)
Jos*_*h K 11
先解决问题。他们不应该推动到他们没有业务推动的分支机构。
你似乎在问什么就像
git checkout live
git pull origin master
Run Code Online (Sandbox Code Playgroud)
这将尝试合并远程主节点和您的实时分支。