想要回到旧的git提交

时间:2012-06-01 03:56:54

标签: visual-studio-2010 git

好的,我认为我搞砸了,我正在开发一个项目并使用git作为版本控制:

我想我在某个地方搞砸了,现在当我说git状态时,我得到了:

# Not currently on any branch.
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   Cocina/bin/Debug/Cocina.exe
#       modified:   Cocina/bin/Debug/Cocina.pdb
#       modified:   Cocina/obj/x86/Debug/Cocina.exe
#       modified:   Cocina/obj/x86/Debug/Cocina.pdb
#       modified:   Viernes 7.suo
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       Cocina/Info.cs
#       Cocina/bin/Debug/Cocina.vshost.exe.manifest
#       Viernes 7/Properties/DataSources/
#       Viernes 7/Table.cs
#       Viernes 7/bin/Debug/Viernes 7.vshost.exe.manifest
#       Viernes 7/obj/x86/Debug/ResolveAssemblyReference.cache
#       back/
#       tables/
no changes added to commit (use "git add" and/or "git commit -a")

我有我做过的所有事情[这里] [1],但它很长,但也许它有所帮助。

我唯一知道的事实是,在这个提交中,我确信一切都按照我的意愿运作,而且他们的一切都开始向南进行合并......

PS C:\Users\Trufa\Documents\Visual Studio 2010\Projects\Viernes 7> git commit -am "the lisview now saves indexes of allr
eady clicks and deletes when table closes"

我可以回去查看当时文件的位置吗?


很抱歉,在我发布问题后,我立即失去了我的互联网连接!

所以更新:

我从github获得了git gui的副本,帮助我想象出不同的提交内容。

与.exe之间存在某种冲突,这使我无法做任何我无法合并的事情,我无法提交,我无法查看,所以我所做的是被复制我的非工作但正确的提交,并在同一解决方案中放入另一个项目。

所以问题是我现在该怎么办?

我很乐意“开始”过来,我的意思是在这一点上项目正在按原样运作,所以我想提交它,所以现在,我该怎么办?

我想整个问题是因为没有使用完整的gitignore文件,如果我现在添加它会发生什么?

所以我的问题是我现在该怎么做,我有点害怕制动,因为我很匆忙,最简单的解决方案是什么?从头开始git repo是一个很大的过度杀戮,删除git并从这一点开始,因为它正在工作吗?

我知道这听起来有点平庸,但我没有太多时间,所以我真的不想在学习git时玩,我稍后会有时间,现在我想要一个简单的修复。

3 个答案:

答案 0 :(得分:2)

我发现您的日志有两个问题:

  1. 您在git仓库中生成了工件,当您想要更改活动分支时,这些工件现在成了障碍
  2. 您目前处于分离头状态。
  3. 生成的工件

    您不应将生成的文件(如* .exe)放入您的仓库,因为当您想要合并分歧的开发线时,这些文件会造成麻烦。

    另外您还有另一个问题,因为打开时无法覆盖这些文件,因此您需要关闭正在运行的程序来覆盖* .exe文件,并关闭visual studio以覆盖* .sou和* .pdb

    有关更好的内容,请参阅.gitignore for Visual Studio Projects and Solutions

    独立头

    在第232行,您通过SHA1检出了修订版,这使您处于所谓的detached head状态。这意味着,当您在此提交的顶部提交某些内容并检查其他某个分支时,您将很难回到刚刚创建的提交。有关详细信息,请参阅http://marklodato.github.com/visual-git-guide/index-en.html#detached

答案 1 :(得分:1)

mm您不在Git文件夹中的分支中。我认为您的文件没有发生任何错误。

你试过吗?

$ git branch - &gt;将列出您的所有分支

这应该至少列出你的主分支

$ git checkout master - &gt;这将切换到master,你将能够再次提交文件

答案 2 :(得分:0)

首先,您可以看到所有提交的日志:

$ git log --online

( - 在线不是强制性的,但使输出更简洁)。输出将类似于:

1fb3915 Fixed View page.
3f69344 Added new images.
d2f74d8 Fixed css.
0e516db Added some photos.
5b99592 Added all cart pages.

如果d2f74d8是一切正常的提交。只需输入:

$ git checkout d2f74d8

现在你可以从这里重新开始。你只想在这里复制一些代码并将其粘贴到master中?复制代码并输入

$ git checkout master

你想从这里重新开始代码?我建议你创建一个新分支:

$ git checkout -b new-branch-name

在这里制作你的东西。当你准备好了,你可以将代码与你的分支合并:

$ git checkout master
$ git merge new-branch-name