Git-如何在我的机器上更新主分支而不丢失工作?

Git-如何在我的机器上更新主分支而不丢失工作?,git,Git,版本控制对我来说是新事物。我搜索了我的问题,但没有找到我想要的答案。也许我没有使用正确的术语 我正在研究一个项目的一些新特性。我上星期参加了硕士班,开始工作。现在,remote上的主分支比我的更新更多,因为另一个人做了一些紧急修复 那么,我如何才能在不损失工作的情况下更新本地主分支?我想我应该完成我的工作,再次从原点/主节点提取,并与我自己的分支合并。这样做对吗?我还没有这么做,因为我对此不放心。工作太多了,失去它真的很糟糕。有不同的方法可以做到这一点。我认为如果您不将这些更改添加到master

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

我正在研究一个项目的一些新特性。我上星期参加了硕士班,开始工作。现在,remote上的主分支比我的更新更多,因为另一个人做了一些紧急修复


那么,我如何才能在不损失工作的情况下更新本地主分支?我想我应该完成我的工作,再次从原点/主节点提取,并与我自己的分支合并。这样做对吗?我还没有这么做,因为我对此不放心。工作太多了,失去它真的很糟糕。

有不同的方法可以做到这一点。我认为如果您不将这些更改添加到master,请将这些更改移动到新的分支

git checkout -b tempbranch
在那之后加上。然后是git commit-m消息

然后再次转到master作为git checkout master,在切换到master之后将更改作为

git拉源主机

拉取更改后,按以下方式运行最终命令
git merge tempbranch可以有不同的方法。我认为如果您不将这些更改添加到master,请将这些更改移动到新的分支

git checkout -b tempbranch
在那之后加上。然后是git commit-m消息

然后再次转到master作为git checkout master,在切换到master之后将更改作为

git拉源主机

拉取更改后,按以下方式运行最终命令
git merge tempbranch

最佳实践是在自己的分支中开发一个特性,即从主分支开始,或者更好地从开发分支开始。 提供集成在git和许多GitGUI客户端应用程序中的指南和工具,以简化此任务和其他常见任务

在您的场景中,您可以做一些不同的事情,具体取决于您想要实施的分支策略和过程

如果您直接在master branch中进行更改,则更简单的方法是:

在本地提交更改,不要推送 在主git pull上重设提交的基础-重设基础
根据您希望如何管理或保持提交(如果您提交了多个提交),您可以重新设置所有提交的基础,或者以交互方式重新设置基础并将一些提交压缩为更少的提交。

最佳做法是在其自己的分支中开发一个功能,即从主分支开始,或者更好的是从开发分支开始。 提供集成在git和许多GitGUI客户端应用程序中的指南和工具,以简化此任务和其他常见任务

在您的场景中,您可以做一些不同的事情,具体取决于您想要实施的分支策略和过程

如果您直接在master branch中进行更改,则更简单的方法是:

在本地提交更改,不要推送 在主git pull上重设提交的基础-重设基础 如果提交了多个提交,根据您希望如何管理或保持提交,您可以重新设置所有提交的基础,或者以交互方式重新设置基础并将一些提交压缩为更少的提交

这工作太多了,如果失去它,那就太糟糕了

首先:您只需在本地复制完整的存储库。git在文件系统中没有任何魔力;它存在于完全正常的文件中

事实上,如果您尝试使用stuff,您可以简单地使用cp或任何您喜欢的文件实用程序复制目录,并处理该副本

那么,我如何才能在不损失工作的情况下更新本地主分支?我想我应该完成我的工作,再次从原点/主节点提取,并与我自己的分支合并

像这样的,是的

git add ...
git commit
git pull origin master
git push origin master
git pull在功能上等同于git fetch origin;git合并源/主。因此,您不需要在以后进行另一次合并。拉动后,您的更改及其更改将显示在主控中。拉法也是您可能遇到冲突的地方,您必须先解决这些冲突,然后才能继续

这工作太多了,如果失去它,那就太糟糕了

首先:您只需在本地复制完整的存储库。git在文件系统中没有任何魔力;它存在于完全正常的文件中

事实上,如果您尝试使用stuff,您可以简单地使用cp或任何您喜欢的文件实用程序复制目录,并处理该副本

那么,我如何才能在不损失工作的情况下更新本地主分支?我想我应该完成我的工作,再次从原点/主节点提取,并与我自己的分支合并

像这样的,是的

git add ...
git commit
git pull origin master
git push origin master

git pull在功能上等同于git fetch origin;git合并源/主。因此,您不需要在以后进行另一次合并。拉动后,您的更改及其更改将显示在主控中。拉也可能会遇到冲突,必须先解决这些冲突,然后才能继续。

提交所有内容,然后执行git-pull-rebaseCommit所有内容,然后执行git-pull-rebaset这就是我的想法
. 我可以将我的分支与更新后的主分支合并而不发生冲突吗?我就是这么想的。我可以将我的分支与更新后的主分支合并而不发生冲突吗?是的,我有自己的分支。Rebase将自动更新my master?@user2132073,然后请编辑您的问题以包含此信息,因为答案可能更适合您或您的场景。我对git flow的建议更具价值是的,我有自己的分支机构。Rebase将自动更新my master?@user2132073,然后请编辑您的问题以包含此信息,因为答案可能更适合您或您的场景。我对git flow的建议更有价值