GIT:检出到其他分支而不进行提交或暂存第一个分支中的文件
GIT: Checkout to other branch without doing a commit or stage the files in the first branch
我是 GIT 的初学者。有时我有一个文件有更改,我需要签出到其他分支。澄清这个文件存在于两个分支中。当我结帐时 git 说:
无法完成签出,因为您有未在第一个分支中提交的更改,这些文件将被覆盖
其他时间 git 允许我检出到第二个分支,而无需在第一个分支中提交或暂存文件
为什么有时 git 不允许我结帐,为什么有时可以?
谢谢
如果您的更改与分支之间存在冲突,git 将合理地拒绝破坏一个或另一个。我解决这个问题的方法是存储更改,然后应用存储(假设我想在新签出的分支中进行更改):
> git stash save
> git checkout <brannchname>
> git stash pop
如果您不想保存未提交的更改。您可以清理您的工作目录,之后,您可以签出到新分支
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
如果您有冲突(您的情况)。我认为最好的警察是完成你正在做的工作并提交完成的工作。然后你签出另一个分支并合并更改。会有冲突,但你最终会被允许解决它们。
我是 GIT 的初学者。有时我有一个文件有更改,我需要签出到其他分支。澄清这个文件存在于两个分支中。当我结帐时 git 说:
无法完成签出,因为您有未在第一个分支中提交的更改,这些文件将被覆盖
其他时间 git 允许我检出到第二个分支,而无需在第一个分支中提交或暂存文件
为什么有时 git 不允许我结帐,为什么有时可以?
谢谢
如果您的更改与分支之间存在冲突,git 将合理地拒绝破坏一个或另一个。我解决这个问题的方法是存储更改,然后应用存储(假设我想在新签出的分支中进行更改):
> git stash save
> git checkout <brannchname>
> git stash pop
如果您不想保存未提交的更改。您可以清理您的工作目录,之后,您可以签出到新分支
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
如果您有冲突(您的情况)。我认为最好的警察是完成你正在做的工作并提交完成的工作。然后你签出另一个分支并合并更改。会有冲突,但你最终会被允许解决它们。