Git切换到掌握并带来未跟踪的文件

时间:2011-02-19 21:33:06

标签: git

当我在使用feature_branch时,我最终修复了整个网站的错误。我想将bug修复提交给master,而不是我的feature_branch。修复涉及添加一些新文件,所以当我尝试检查主文件时它会中止并警告我未被跟踪的文件将被覆盖。

如何切换到主人并随身携带未跟踪文件?

3 个答案:

答案 0 :(得分:18)

有些事情不对。通常,当您切换分支时,未经跟踪的文件会随身携带,而不会发出任何通知。这就是为什么他们被称为“未跟踪”。但是,您说未覆盖的文件将被覆盖。这意味着您已在主分支中已存在的新分支中创建了未跟踪文件。这意味着你必须决定你想做什么:要保留哪一个。这不是让git做某事的问题,而是你不清楚你想要它做什么。

假设您想要以某种方式解决同一文件的两个副本之间的冲突,您可以执行

git checkout feature_branch
git stash
git checkout master
git stash pop

然后解决将要发生的冲突。

答案 1 :(得分:3)

解决此问题的一种方法是隐藏更改,然后在master上恢复它们​​。

  1. 确保您已经提交了与此错误修复无关的所有其他内容
  2. 运行git stash save "bug fix for master"
  3. git checkout master
  4. git stash pop
  5. 解决由隐藏弹出窗口导致的任何冲突
  6. 将此修复程序提交给master
  7. 切换回您的功能分支

答案 2 :(得分:0)

我能想到的最简单的解决方案是制作未经跟踪/修改过的文件的本地副本。然后检查你的主人并重新上传并从那里添加提交。如果有任何冲突,git会通知你,你可以在那时合并。