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

GIT:签出到另一个分支,而不进行提交或在第一个分支中暂存文件,git,git-checkout,Git,Git Checkout,我是GIT的初学者。有时,我有一个带有更改的文件,我需要签出到其他分支。澄清此文件是否存在于两个分支中。当我结账时,git说: 无法执行签出,因为您在第一个分支中没有提交更改,这些文件将被覆盖 其他时候,git允许我签出到第二个分支,而无需在第一个分支中提交或暂存文件 为什么有时候git不允许我结账,为什么有时候允许我结账 谢谢如果您的更改与分支之间存在冲突,git将合理地拒绝对其中一个进行攻击。我解决这个问题的方法是隐藏更改,然后应用隐藏(假设我希望在新签出的分支中进行更改): >git隐藏保

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

  • 无法执行签出,因为您在第一个分支中没有提交更改,这些文件将被覆盖

  • 其他时候,git允许我签出到第二个分支,而无需在第一个分支中提交或暂存文件

  • 为什么有时候git不允许我结账,为什么有时候允许我结账


    谢谢

    如果您的更改与分支之间存在冲突,git将合理地拒绝对其中一个进行攻击。我解决这个问题的方法是隐藏更改,然后应用隐藏(假设我希望在新签出的分支中进行更改):

    >git隐藏保存
    >git签出
    >吉特隐藏流行音乐
    
    如果不想保存未提交的更改。您可以清理您的工作目录,然后,您可以签出到新的分支

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