git version 2.6.3.windows.1
我有pull request
我需要做的事
所以我结帐了一个新的分支(pull_feature_branch
)。做了pull
请求,该请求在许多冲突中解决。
没问题 - 我只是需要时间来解决它们,应该花几天时间。
但我突然发现了一个我必须注意的错误 - 在主要分支中。 但是我无法从我的 pull_feature_branch 分支结帐到我的主分支。
通常我隐藏我在其他分支中的未经修改的更改 - 这允许我签出到主分支来修复错误。
但是现在藏匿不起作用 -
fatal: git-write-tree: error building trees
Cannot save the current index state
我必须有办法停止冲突程序,修复错误,然后返回修复冲突。
现在我知道我可以"有点"通过创建另一个项目文件夹(通过克隆项目或使用worktree
命令来解决它(避免是更合适的单词) - 请参阅CodeWizard's answer)
并使用一个文件夹来解决冲突,另一个用于解决错误。
我正在寻找一种能够在同一文件夹中更改分支的方法。
总结一下:我做了 pull 请求,这使得许多冲突,现在我已经""卡住"在当前的冲突分支中,没有能力改变分支。
答案 0 :(得分:2)
答案很简单。
在Git源代码的contrib/workdir
目录下,您将找到名为git new-workdir
的git命令。
此命令允许您并排在多个分支上同时工作
该函数的作用就是创建git
文件夹的浅表副本(在新文件夹中键入树.git以查看它实际指向的位置),您将看到它指向原始git文件夹。 />
在新文件夹中,您可以创建新的提交,分支机构等,您将在所有new-workdir
个文件夹中看到它,因为它们共享"相同的" git repo。
contrib/workdir
添加到您的路径git-new-workdir
导航到您当前的git存储库
git new-workdir . my_new_path
cd my_new_path
tree .git ( you should see links to the original git repository)
git checkout -b new_branch
git branch (your new branch is listed)
cd original_path
git branch (the new branch is listed but the current branch is the original branch)
: - )
Git 2.5将包含一项功能,允许您在不使用此脚本的情况下拥有多个工作目录(git checkout --to=$path
)。