我是GIT的初学者。有时我有一个包含更改的文件,我需要结帐到其他分支。澄清这个文件存在于两个分支中。当我结账时,git说:
由于您在第一个分支中未提交更改并且这些文件将被覆盖,因此无法完成结帐
其他时候git允许我签到第二个分支而不进行提交或在第一个分支中暂存文件
为什么有时git不允许我结账,为什么有时呢?
由于
答案 0 :(得分:3)
如果您的更改与分支之间存在冲突,git将合理地拒绝破坏其中一个或另一个。我解决这个问题的方法是隐藏更改,然后应用存储(假设我想在新签出的分支中进行更改):
$("#roomList").on("change", function() {
$(this).closest("form").submit();
});
答案 1 :(得分:0)
如果您不想保存未提交的更改。您可以清理工作目录,之后,您可以结帐到新分支
git reset --hard
git checkout theOtherBranch
如果要在完成其他分支中的工作后保存更改以继续在其中工作。我更愿意提交更改并稍后重置。
git commit -a -m "Commit to reset later"
git checkout theOtherBranch
// works in this branch and commit the changes.
git checkout theFirstBranch
git reset --mixed HEAD~1 // With this you get the working directory as the beginning.
如果要将未提交的更改转换为其他分支而不保存它们,则可以在没有冲突的情况下执行此操作(相同文件和行中的更改)。
git checkout theOtherBranch
如果您有冲突(您的情况)。我认为最好的警察是完成你正在做的工作并完成完成的工作。然后签出另一个分支并合并更改。会有冲突,但最终会允许你修复它们。