我在git中有一个独立的头.我没有兴趣做任何提交或保存任何更改,我只想去我的分支机构的头部位置.我已经尝试过他的命令,但它不起作用:
git checkout MyBranch
Run Code Online (Sandbox Code Playgroud)
有帮助吗?
----更新
当我试图结账时,我收到此消息:
$ git checkout -f master
Switched to branch 'master'
Your branch is behind 'origin/master' by 6 commits, and can be fast-forwarded.
Run Code Online (Sandbox Code Playgroud)
---更新2它说这是一些变化,我该如何删除它们?
$ git merge origin/master
Updating fb5972a..28c2849
error: The following untracked working tree files would be overwritten by merge:
---
Please move or remove them before you can merge.
Aborting
Run Code Online (Sandbox Code Playgroud)
我怎么能丢弃它们?
这些命令不起作用:
$ git checkout -- .
$ git stash save --keep-index
No local changes to save
Run Code Online (Sandbox Code Playgroud)
这可能是因为你已经对分离的头部进行了更改.
尝试强制结帐,这将丢弃更改,正如您所提到的,您不关心这些.
git checkout -f MyBranch
Run Code Online (Sandbox Code Playgroud)
从git help checkout手册页:
Run Code Online (Sandbox Code Playgroud)-f, --force When switching branches, proceed even if the index or the working tree differs from HEAD. This is used to throw away local changes. When checking out paths from the index, do not fail upon unmerged entries; instead, unmerged entries are ignored.
切换到分支'主'
所以,你现在在主分公司.
你的分支是6个提交的'origin/master',
这意味着远程主分支具有更新,并且您可能希望更新本地分支以匹配远程.您已经获取了origin/master分支,因此git知道您的本地分支位于远程分支之后.
并且可以快进.
这意味着远程分支对其进行了线性更改,并且在合并/更新本地分支时不会发生冲突.
要更新本地分支,只需将origin/master分支合并到它.
git merge origin/master
Run Code Online (Sandbox Code Playgroud)
错误:合并将覆盖以下未跟踪的工作树文件:
这意味着你有一些本地的文件,没有被跟踪(从来没有git add'ed和commited)新的更改(合并)将添加到要监视和跟踪的文件的git列表.因此,将要添加的新文件与repo上的本地未跟踪文件混杂在一起.
要解决此问题,请删除这些本地文件,或重命名它们,或将它们移动到其他位置并尝试再次合并远程分支.