版本控制对我来说是新东西。我搜索了关于我的问题,但我没有找到我想要的答案。也许我没有使用正确的术语。Git - 如何在不丢失工作的情况下更新我机器上的主分支?
我在工作的一些新功能。我上周接受了主分支并开始工作。现在,远程主分支比我更新,因为另一个人做了一些紧急修复。
那么,我如何更新本地主分支而不失去工作?我认为我应该承担我的工作,再次从原籍/主人处拉回来,并与我自己的分支合并。这是正确的做法吗?我没有这样做,但因为我不安全。这是太多的工作,失去它将是非常糟糕的。
版本控制对我来说是新东西。我搜索了关于我的问题,但我没有找到我想要的答案。也许我没有使用正确的术语。Git - 如何在不丢失工作的情况下更新我机器上的主分支?
我在工作的一些新功能。我上周接受了主分支并开始工作。现在,远程主分支比我更新,因为另一个人做了一些紧急修复。
那么,我如何更新本地主分支而不失去工作?我认为我应该承担我的工作,再次从原籍/主人处拉回来,并与我自己的分支合并。这是正确的做法吗?我没有这样做,但因为我不安全。这是太多的工作,失去它将是非常糟糕的。
这是太多的工作,失去它将是真的很糟糕。
首先:您可以简单地在本地复制您的完整存储库。 git
在文件系统中不会有任何魔法;它生活在完全正常的文件中。实际上,如果您尝试使用东西,您可以简单地复制您的目录(使用cp
或任何您喜欢的文件实用程序)并在该副本上工作。
那么,我怎么能更新本地主分支而不失去工作?我认为我应该承担我的工作,再次从原籍/主人处拉回来,并与我自己的分支合并。
就是这样的,是的。
git add ...
git commit
git pull origin master
git push origin master
的git pull
在功能上等于git fetch origin ; git merge origin/master
。所以你以后不需要再做一次合并。拉动之后,您将在master
中进行更改和更改。拉也是你可能会遇到冲突,并将不得不解决这些之前,你可以继续。
可以有不同的方法来做到这一点。我认为,如果你不加这些变化,掌握后,将这些变化的新的分支作为
git checkout -b tempbranch
是git add .
然后git commit -m "message"
然后再去大师为git checkout master
开关后掌握拉你的变化
git pull origin master
一旦你拉的变化运行最后命令 git merge tempbranch
这就是我想的。我可以将我的分支与未更新的主人合并吗? –
对于后期问题感到抱歉的是,除非您不添加本地更改,否则您无法进行更改 –
最佳做法是在自己的分支中开发一个功能(即,从master
开始,或者更好的是从develop
分支开始)。
git-flow提供了git(和许多git GUI客户端应用程序)中集成的指导和工具,以简化其他常见任务。
在您的方案中,您可以执行一些不同的操作,具体取决于要采用的分支策略和过程。
如果直接在master
分支做出更改,更简单的一种是:
根据您想如何“管理”或让你的提交(如果您做了不止一个),你可以变基所有的提交,或重订交互(和“南瓜”作了一次提交到少)。
是的,我有自己的分支。 Rebase会自动更新我的主人? –
@ user2132073然后请编辑您的问题以包含此信息,因为答案可能会更好定制或您的方案。 (我的git-flow建议更有价值) – roalz
承诺一切,然后做一个'git拉--rebase' – ckruczek