1

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

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

# 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"

我可以回去检查当时的文件在哪里吗?


很抱歉,我在发布问题后立即失去了 Internet 连接!

所以更新:

我有一份来自 github 的 git gui 副本,它帮助我可视化了不同的提交。

与 .exe 存在某种冲突,它阻止了我或多或少地做任何我无法合并的事情,我无法提交,我无法签出,所以我所做的就是复制我的非工作但正确提交并放入同一解决方案中的另一个项目。

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

我很乐意“重新开始”,我的意思是此时项目正在按应有的方式运行,所以我想提交它,那么现在,我该怎么办?

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

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

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

4

3 回答 3

2

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

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

生成的工件

您不应该将生成的文件(如 *.exe)放入您的存储库中,因为当您想要合并不同的开发线时,这些文件会引起麻烦。

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

请参阅.gitignore 了解 Visual Studio 项目和解决方案,以了解最好省略的内容。

分离头

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

于 2012-06-01T08:27:41.147 回答
1

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

你有没有尝试过?

$ git branch --> 将列出你所有的分支

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

$ git checkout master --> 这将切换到 master 并且您将能够再次提交文件

于 2012-06-01T04:09:05.670 回答
0

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

$ git log --online

(--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
于 2012-06-01T04:23:30.497 回答