虽然我已经在Github上阅读了一些基本命令,但是在跟随开源项目开发人员配置时,我意外地创建了一些东西并且陷入了如此严重的困境,以至于现在我无法从那个地方前往任何地方。
我做的是
说明创建了一个分支,所以我创建了一个分支 git branch branch_name
然后说明用 git pull repo_URL branch_name
这就是所有事情搞砸了。
我得到了一些错误,其中提到解决方案是执行git commit。
现在一切都被绞死了。
我在新分行。无法说出来,所以最终无法删除。 此外,当我输入 git status
时 On branch branch_name
You have unmerged paths.
(fix conflicts and run "git commit")
Changes to be committed:
new file: ../../.br.json
new file: ../../.gitattributes
new file: ../../.gitmodules
new file: ../../.jshintrc
new file: ../../.travis.yml
new file: ../../CONTRIBUTING.md
new file: ../../Gruntfile.js
new file: ../../NOTICE
new file: ../../package.json
and so on...
当我尝试通过 git checkout master 结帐其他分支时 我收到这些消息:
.gitignore: needs merge
LICENSE: needs merge
README.md: needs merge
error: you need to resolve your current index first
决议是什么,如何将所有内容还原?
答案 0 :(得分:2)
有没有办法做到这一点?
只需保留当前的回购。
去其他地方尝试不同的方法。
首先确保your config user.name
and user.email
are properly set locally。
然后首先克隆远程仓库:
git clone https://<yourUserName>@github.com/<yourUserName>/<yourRepo>
cd <yourRepo>
完成后,您应该在主分支中(使用git status
和git branch -avvv
检查)
最后,将您从旧本地仓库创建或修改的文件报告给此文件(只需复制),执行git add .; git commit -m "First implementation"; git push
。
答案 1 :(得分:1)
如果要还原所有更改,只需执行以下命令:
git reset --hard HEAD
答案 2 :(得分:1)
目前在您的分支branch_name
上,您有一些待处理的更改,这会阻止您查看master branch
。到&#34;恢复&#34;从那以后
您可以在branch_name
分支上签入所有这些更改,也可以取消更改。
如果没有挂起的更改,您可以毫无问题地切换到任何其他分支。
因此,检查所有挂起更改的最简单方法是运行
$ git commit --all --message "Some messed up changes"
将创建所有这些更改的提交。即使您可能不想保留它们,也可以在以后删除它。
取消可以运行的更改
$ git checkout <filenames>
或自动处理以下两个命令之一的所有文件
$ git reset --hard HEAD
$ git ls-files --modified -z | xargs -0 git checkout
顺便提一下,我建议您运行gitk --all
以获得存储库中分支和更改的可视化视图。
答案 3 :(得分:0)
在github网站上打开您的存储库。看看你的分支是否存在。通过分支标签。如果是,请转到终端并执行
git log
检查是否显示了您不想推送到您的回购的提交。您可以通过“git show”查看提交中的更改,其中hash是git log输出中显示的提交ID。如果git log输出中没有不需要的提交,只需执行
git reset
你很高兴。如果有一个不需要的丢弃提交(未被推送到服务器),请编写以下命令
git reset --soft HEAD ^
然后,
git reset
答案 4 :(得分:0)
gut pull
是git fetch
的缩写,后跟git merge
发生了合并冲突!
看看这些文件:
.gitignore
LICENSE
README.md
您需要先解决这些合并冲突。 See here
如果您搞砸了事情,可以中止合并并再次进行合并。
git merge --abort
git merge <remote>/branch_name
如果您不想保留任何更改。您始终可以通过调用以下方式重置分支到远程版本:
git reset --hard <remote>/branch_name
如果您想保留更改,则需要解决这些冲突。您处于合并的中间,此时无法切换到master。