代码之家  ›  专栏  ›  技术社区  ›  Andersson

如何签出到另一个分支并强制覆盖更改

git
  •  3
  • Andersson  · 技术社区  · 6 年前

    branch1 把他们交给我 branch2 :

    >>git checkout branch2
    error: Your local changes to the following files would be overwritten by checkout:
        .gitignore
    Please, commit your changes or stash them before you can switch branches.
    Aborting
    

    .gitignore 更新文件中提到的文件:

    >>git status
    On branch branch1
    Your branch is ahead of 'origin/branch1' by 1 commit.
      (use "git push" to publish your local commits)
    nothing to commit, working directory clean
    >>git stash 
    No local changes to save
    

    我也试过了

    >>git checkout branch2 -f
    

    但是得到了

    error: Entry '.gitignore' not uptodate. Cannot merge.
    

    >>git rm --cached .gitignore
    

    没有成功

    我怎么能强行结账 忽略这个 "error: Your local changes to the following files would be overwritten by checkout" ?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Andersson    6 年前

    解决方法如下:

    >>git rm --cached .gitignore
    >>git reset HEAD /path/to/.gitignore
    

    .gitignore出现在无暂存的提交文件中

    >>git checkout -- .gitignore
    
        2
  •  0
  •   Dinuka De Silva    6 年前

    首先重置对branch1所做的更改

    git reset --hard
    

    然后签出分支2

    git checkout branch2
    

    希望这有帮助。。。。:)