Git: can't switch between branches

只谈情不闲聊 提交于 2019-12-20 06:28:12

问题


In a local folder with several files, I have a git repository for which branch x only includes a few of those files, and the master one includes them all.

When I try to switch from x to master, I get:

$ git checkout master
error: The following untracked working tree files would be overwritten by checkout:
[...some files...]
Aborting

EDIT: None of the listed files belong to branch x, they all belong to the master one. I'm pretty confident they haven't been modified and in any case I am ok with going back to whatever version of them is saved in the master branch.

What should I do?


回答1:


You have some files (the ones listed) that have been edited, but by checking out a other branch, you'll overwrite (and lose) these edits.

You can commit these changes, or stash them.

See : http://git-scm.com/book/en/v1/Git-Tools-Stashing




回答2:


The problem is that you have files that have not been added to the working tree (Eg: new files created after the last commit). Git is preventing you from losing those files when you want to switch branches.

In order to be able to change the branch, you can either add those files to the working tree (git add file1.out or for all: git add --all) or you can remove them (git rm file1.out ...). Then you can either commit or (if not ready) you can stash them (git stash) and when you want them back (git stash pop)

More info here and here.




回答3:


git checkout -f branch_you_want_to_go

CAREFUL. This will revert ALL changes done on the branch. But if you are forced to merge and doesnt let you stash is an easy way when not much is done.

Do this if you want to delete your branch afterwards (probably with git branch -D branch_to_delete) or you want to start working on this brand from 0.



来源:https://stackoverflow.com/questions/29364597/git-cant-switch-between-branches

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!