简单的git错误修复过程



我希望能够开发一个新功能,停止我正在做的修复错误的工作,然后回到我正在开发的功能。我使用以下非常简单的过程来做到这一点:

  1. 当我收到需要紧急修复的通知时,假设我正在branch_feature中开发一项新功能。我(暂时)将本地正在进行的任何工作提交给branch_feature
  2. 我切换到本地分支prod,从github获取prod的最新代码(其中包含在生产中运行的代码)
  3. 我实现并测试了我的修复程序,将其提交到prod,将其推送到github并进行部署
  4. 我在本地切换回branch_feature,取消对0中提交的正在进行的工作的限制,并继续使用我的新功能

如果我想将我在2中所做的修复合并到我的工作分支branch_feature,但不提交任何正在进行的工作,该怎么办?我不喜欢犯坏东西

如果我尝试在没有提交之前合并它们,我会收到一条错误消息:

错误:您对以下文件的本地更改将被覆盖通过合并:

我是git的新手,如果你认为上面的过程没有意义,请随意提出其他建议,但请保持简单的

注意:我将git与github和Visual Code一起使用。

您可以使用git stash将更改隐藏在功能分支上,而无需提交。然后合并你的生产部门。然后打开储藏室。

1.搁置你的改变

这将在不提交更改的情况下在分支上保留更改的副本。

# stash changes on current (feature branch)
git stash
# verify the changes are stashed
git stash list
# check status to ensure no local changes are there
# should show no changes
git status

2.合并生产分公司

通过提取最新的生产更改(这是在修复错误后完成的)。然后将它们合并到功能分支中。

# get production latest
git checkout production
git pull
# checkout feature
git checkout feature
# merge production - resolve any issues
git merge production

3.打开你的Stash

在合并后,在你的存储中弹出更改,将其应用于你的功能分支

git stash pop

此时,您的功能分支已经从生产中进行了更改,并将进行本地更改unstaged

注意:合并production并弹出隐藏的更改后,您可能需要处理冲突(即您对生产的错误修复与功能分支上的本地更改冲突)。

我认为这是一个非常好的工作流程。我已经使用Git大约8年了,我经常遵循这些确切的步骤。

正如m_vemuri所描述的,git stash是另一个选项。存储是一堆短暂的临时提交,以帮助处理这种情况。我个人发现,一旦你对提交感到满意,隐藏就可能会觉得有点笨重,但我仍然经常使用它们。

另一个常见的解决方案是git worktree;"干净";随时为修补程序提供工作树。

我不喜欢提交损坏的东西

不要害怕提交正在进行的工作。大多数Git操作都是在提交时操作的,而不是在处理更改,因此从长远来看,接受提交只会给你更多的权力。

例如,您可以进行一系列单独的提交;破碎的";并使用CCD_ 13将它们压缩成更小的";正确的";在推送到origin之前提交。

另一个例子是,Git在每次操作后都会保存其状态的快照,允许您通过git reflog从坏状态中恢复。然而,它只保存在某个时刻存在于对象中的更改(提交、隐藏等)。因此,如果你对一个文件有很多未提交的更改,并且有什么东西破坏了你的Git回购,你将无法恢复这些更改。

尽早提交,经常提交。

相关内容

  • 没有找到相关文章

最新更新