首先,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
答案 0 :(得分:1)
您需要pull
才能push
。
git pull
然后,你应该能够推动。在之前警惕合并冲突,因为任何带有这些冲突标记的代码都无法编译。
根据您提供给我们的新信息,请确保您的主分支机构正在跟踪遥控器。
使用git branch --set-upstream-to=origin/master
确保本地分支正在跟踪远程更改,然后执行git fetch
以确保您拥有最新资料(这不会自动合并更改) )。
答案 1 :(得分:0)
在推送之前,您需要从服务器拉出。客户抱怨说,在没有完成所有旧工作的情况下,你正在推动新工作。
这为您提供了两个选项: