当我在feature_branch上工作时,我发现整个网站有一个bug需要修复。我想将bug修复提交到主分支master,而不是我的feature_branch。由于修复涉及添加一些新文件,因此当我尝试切换到master分支时,系统会中止操作并警告我未跟踪的文件将被覆盖。
那么我该如何切换到master分支并将未跟踪的文件带入呢?
当我在feature_branch上工作时,我发现整个网站有一个bug需要修复。我想将bug修复提交到主分支master,而不是我的feature_branch。由于修复涉及添加一些新文件,因此当我尝试切换到master分支时,系统会中止操作并警告我未跟踪的文件将被覆盖。
那么我该如何切换到master分支并将未跟踪的文件带入呢?
有些地方似乎不对。一般来说,当你切换分支时,未跟踪的文件会自动带到新分支中而不需要任何提示。这就是为什么它们被称为“未跟踪”。但是,你说未跟踪的文件将被覆盖。这意味着你在新分支中创建了一个已经存在于主分支中的“未跟踪文件”。这意味着你必须决定要保留哪个文件。这不是让git执行某些操作的问题,而是你没有清楚地表达你想要它做什么。
假设你想解决两个相同文件的冲突,你可以执行以下操作:
git checkout feature_branch
git stash
git checkout master
git stash pop
然后解决将会出现的冲突。
解决这个问题的一个方法是将您的更改隐藏起来,然后在主分支上恢复它们。
git stash save "bug fix for master"
git checkout master
git stash pop
我能想到的最简单的解决方案是制作您未跟踪/修改的文件的本地副本。然后检出您的主分支,从那里重新上传并添加提交。如果有任何冲突,git 将通知您,您可以在那时合并。