Git分支领先于高手,无法结账高手

时间:2013-10-11 04:24:37

标签: git

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

Situation

我现在想将它合并回主人,以便我有一个线性历史记录。我是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

2 个答案:

答案 0 :(得分:0)

错误消息的主要内容是您当前正在进行working提交的更改,如果您将分支切换为master,这些更改将会丢失。

  • 如果我不想提交更改,那么我会stash代替它们。这会创建一堆变更集,我可以随时返回并应用。

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

  • 如果我确实认为我没有做出任何更改,那么我会做git merge working,并确保没有进行任何更改。

    < / LI>

答案 1 :(得分:-1)

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