git commit进程以某种方式破坏了

时间:2015-06-04 20:50:00

标签: git github

首先,git / GitHub对我来说基本上都是黑盒子 - 我只知道如何做非常简单的事情,所以很可能答案很简单。

我今天在玩,并意识到我的存储库中有一个我不想公开的文件,所以我尽我所能通过GitHub网站删除它(最终成功)。我还删除了.gitignore.Rprofile文件,前者因为我没有忽略任何内容而后者因为我只是错误地添加了它。

这里的某些内容似乎已经混淆了git,因为现在我在调试的各个阶段都出现了以下任何错误:

git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    .gitignore

nothing added to commit but untracked files present (use "git add" to track)

虽然git文件为空,但可能需要一个.gitignore文件,我将文件恢复到我的目录无效:

git add .gitignore
git commit -m 'adding gitignore'
git push origin master

给我错误:

 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/MichaelChirico/real_estate.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

然后我再次尝试,在推动这段时间之前试图获得status

git add .gitignore
git commit -m 'adding gitignore'
git status

告诉我:

On branch master
nothing to commit, working directory clean

基本上我对于发生的事情感到迷茫。我已经搜索了一段时间,但找不到任何有用的信息(主要是关于在.gitignore文件中查找差异的评论)所以我放弃并在这里发帖。

我看到this post,但无法理解答案。

更新:@Makoto请求输出git branch -vv

* master 1a5db95 fixing .gitignore

2 个答案:

答案 0 :(得分:1)

您需要pull才能push

git pull

然后,你应该能够推动。在之前警惕合并冲突,因为任何带有这些冲突标记的代码都无法编译。

根据您提供给我们的新信息,请确保您的主分支机构正在跟踪遥控器。

使用git branch --set-upstream-to=origin/master确保本地分支正在跟踪远程更改,然后执行git fetch以确保您拥有最新资料(这不会自动合并更改) )。

答案 1 :(得分:0)

在推送之前,您需要从服务器拉出。客户抱怨说,在没有完成所有旧工作的情况下,你正在推动新工作。

这为您提供了两个选项:

  1. 拉然后按
  2. 推送 - 强制并丢弃您没有的服务器上的内容