0

我有一个非常简单的存储库。我用 SourceTree 做了两次提交。然后创建了一个分支working。我对working.

情况

我现在想将它合并回 master 以便我有一个线性历史。我是 git 新手,现在确定我做错了什么。在这一点上,即使我没有工作副本更改,我也无法结帐主人,因为我收到错误:

git -c diff.mnemonicprefix=false -c core.quotepath=false checkout master
error: Your local changes to the following files would be overwritten by checkout:
    web/index.html
    web/js.js
Please, commit your changes or stash them before you can switch branches.
Aborting

右键单击主分支/修订并单击mergerebase无效。我做错什么了?我应该使用什么“标准”工作流程?

编辑:我认为我应该做的是checkout master; merge working,但我不确定为什么我不能结帐大师。

EDIT2:查看working分支/提交(它确实已提交,而不仅仅是暂存),我看到了它在错误中抱怨的确切文件。

EDIT3:我在执行以下操作时看到错误git status

$ git status
web/index.html: Permission denied
web/js.js: Permission denied
# On branch working
nothing to commit, working directory clean
4

2 回答 2

0

错误消息说明的是,您当前有暂存为提交的更改,working如果您将分支切换到master.

  • 如果我不想提交更改,那么我会将它们存储起来。这会创建一堆变更集,我可以随时返回并应用这些变更集。

  • 如果我想提交我的更改,然后将分支合并在一起,那么这是一个非常简单(和典型)的提交,之后我可以切换到master并执行git merge working.

  • 如果我真的不认为我做了任何更改,那么我会做一个reset --hard HEAD,并确保没有上演任何更改。

于 2013-10-11T04:36:18.750 回答
-1

我不确定发生了什么。我有一个正在运行的 Web 服务器,它为这些文件提供服务,并让它们在 Notepad++ 中打开。关闭 Web 服务器后,SourceTree 中的图形刷新以显示这两个文件有未提交的更改被删除。我不确定他们为什么被删除。丢弃这些更改后,我能够签出 master 并合并工作。

于 2013-10-11T05:02:33.050 回答