Git结帐不起作用

时间:2016-12-06 03:03:26

标签: git

我很抱歉突然请求,但我需要帮助。 我正在用git管理一个项目。现在,当然,编译器生成的文件会从暂存中省略。但是我提交了一个错误,正在跟踪制作过程生成的一个文件,我忽略了它。

一切进展顺利,但后来我想检查之前的提交,所以我做了

git checkout previous_commit

所以我有它的早期版本。 然后我构建了项目,显然修改了我正在谈论的文件。 (所以这个文件是" uncommited")

我想回到我正在处理的最后一次提交,所以我做了

git checkout last_commit

但现在git拒绝遵守:

  

错误以下文件的本地更改将被结帐覆盖:         the_file_with_problem.dep   请在更改分支之前提交更改或存储更改   中止

正如你所看到的,git已经检测到我构建项目时我修改了这个文件所以它不希望我回去

如何更正此错误,返回上一次提交,当然通过取消暂存这个有问题的文件来防止再次发生?

编辑:

我觉得我不太清楚,对不起。我将在这里总结一下。

我们说我有一个软件项目。我构建它,然后提交它 此提交的名称是previous_commit。

然后我对它做了更多修改,然后提交它。此提交的名称是last_commit。

所以我们有previous_commit - > last_commit

但是,我无法构建项目的最后一个版本,因此我得到了一些链接错误。 hummmm想知道出了什么问题,让我们看看我以前的版本是如何运作的。

所以我回到之前的提交并构建它

我想要做的就是回到之前的提交,检查一些事情并回到我上一次提交。非常简单。

问题在于,当我构建先前的提交时,它修改了一些文件,因此git正在考虑我修改了一些文件并且不想返回"因为我将丢失更改&#34 ;

我只想回到原来的位置。就是这样

(当然还有以前没有上传过的有问题的文件)

2 个答案:

答案 0 :(得分:0)

我可以看到你有3个选项,

  1. 如果您不希望将更改提交为新提交( 在最新提交之后提交)但需要保留更改 暂时保存在某个地方以便进一步开发和提交 稍后,您可以stash更改并切换到其他提交。 然后,您可以在获得stash内容时获取 需要,请检查这些链接link1 link2
  2. 或者你可以在没有的情况下修改最新提交的新更改 创建新提交Read this
  3. 或者您需要的只是看看您做了哪些其他更改 您可以使用

    结帐到临时分支的最新提交

    git checkout -b temp-branch-name

    完成后您可以删除分支

答案 1 :(得分:0)

感谢您的回答。我找到了一种方法来做我想做的事情

git checkout -- <problem file>

然后 git checkout last_commit

现在我必须找到一种方法来取消这个有问题的文件