GIT:签出到其他分支而不进行提交或在第一个分支中暂存文件

时间:2015-07-23 17:16:14

标签: git git-checkout

我是GIT的初学者。有时我有一个包含更改的文件,我需要结帐到其他分支。澄清这个文件存在于两个分支中。当我结账时,git说:

  1. 由于您在第一个分支中未提交更改并且这些文件将被覆盖,因此无法完成结帐

  2. 其他时候git允许我签到第二个分支而不进行提交或在第一个分支中暂存文件

  3. 为什么有时git不允许我结账,为什么有时呢?

    由于

2 个答案:

答案 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

如果您有冲突(您的情况)。我认为最好的警察是完成你正在做的工作并完成完成的工作。然后签出另一个分支并合并更改。会有冲突,但最终会允许你修复它们。