git-如何在不失去工作的情况下更新我的机器上的主分支



版本控制对我来说是新事物。我搜索了我的问题,但没有找到我想要的答案。也许我没有使用正确的术语。

我正在从事项目的一些新功能。我上周带了大师分支,开始工作。现在,遥控器上的主分支比我的更新更新,因为另一个人进行了一些紧急修复。

那么,如何在不失去工作的情况下更新本地主分支?我认为我应该从事我的工作,再次从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分支中进行了更改,那么简单的是:

  1. 提交您的更改(在本地,不要推)
  2. 反击您对主人的承诺(git pull -rebase)

取决于您要"管理"或保持提交的方式(如果您做出了多个),则可以重新置于所有提交或交互式反弹(以及"壁球"的一些提交较少)。

最新更新