版本控制对我来说是新事物。我搜索了我的问题,但没有找到我想要的答案。也许我没有使用正确的术语。
我正在从事项目的一些新功能。我上周带了大师分支,开始工作。现在,遥控器上的主分支比我的更新更新,因为另一个人进行了一些紧急修复。
那么,如何在不失去工作的情况下更新本地主分支?我认为我应该从事我的工作,再次从Origin/Master中撤出,并与自己的分支合并。那是正确的事情吗?我没有这样做,但我对此并不安全。工作太多了,失去它真的很糟糕。
工作太多了,失去它真的很糟糕。
首先:您可以在本地复制完整的存储库。git
在文件系统中没有任何魔术;它生活在完全普通的文件中。
实际上,如果您尝试了一些东西,则可以简单地复制您的目录(使用cp
或您喜欢的任何文件实用程序)并处理该副本。
那么,如何在不失去工作的情况下更新本地主分支?我认为我应该从事我的工作,再次从Origin/Master中撤出,并与自己的分支合并。
类似的东西,是的。
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"
然后,在切换到主拉更改为
之后,再次转到Master为git checkout master
git pull origin master
拉动更改后,最终命令为 git merge tempbranch
最佳实践是在自己的分支中开发功能(即从master
或更好的develop
分支开始)。
git-flow提供了集成在git(以及许多git GUI客户端应用程序)中的指导和工具,以简化此其他常见任务。
在您的方案中,您可以做一些不同的事情,具体取决于要制定的分支策略和过程。
如果您直接在master
分支中进行了更改,那么简单的是:
- 提交您的更改(在本地,不要推)
- 反击您对主人的承诺(git pull -rebase)
取决于您要"管理"或保持提交的方式(如果您做出了多个),则可以重新置于所有提交或交互式反弹(以及"壁球"的一些提交较少)。