无法将代码推送到Github:一切都是最新的。

21

在 GitHub 上,我 fork 了另一个项目的旧版本。我进行了一些更改并试图将它们推送到我的 GitHub fork 上。我在本地提交了更改,然后尝试使用 git push 命令,但它只告诉我“Everything up-to-date”。但是当我在 GitHub 上浏览该项目时,仍然没有变化:我的 Fork 中显示未经修改的文件(来自最新版本)。如何将更改推送到我的 GitHub 帐户中?

(我意识到这不是很详细...我还能说什么呢?我有一种感觉,可能是因为我直接在 (home)/git/(project) 中修改文件的缘故吗?)


2
检查你是否在正确的分支上。 git log --graph --all --decorate --pretty=oneline 和 git remote show origin 可能会有用。 - tomgi
git branch -vgit remote -v 的输出是什么? - Stefan
3
Everything up-to-date 表示没有进行推送(因为没有添加新内容),你在 git push 之前是否执行了 git addgit commit - KurzedMetal
啊,git branch -v 表明我的提交在(无分支)。至于添加,我最初通过 Eclipse(带有 git 插件)提交了更改...当我从命令行执行 git add 时,似乎没有任何反应。 - Kricket
6个回答

11
这意味着您处于 DETACHED HEAD 模式。
您可以添加和提交,但从上游存储库的角度(即 GitHub 存储库)来看,没有新的提交准备好被推送。
您有多种方法将本地(分离的 HEAD)提交包含回一个分支中,然后就可以推送了。
请参见: The OP提到了这篇文章来解决这个问题:
"git: what to do if you commit to no branch"

我们需要做的就是切换到应该在的分支然后合并那个提交SHA:

请注意,您可以使用脚本记忆提交SHA1,而不是合并您可能已经复制的SHA1,使用head=$(git rev-parse HEAD)
参见 "git: reliably switching to a detached HEAD and then restore HEAD later, all from a script"。 然后,您可以将该分离的HEAD合并回正确的分支。


是的,这就是我刚刚发现的。这向我展示了如何修复它。 - Kricket
@KelseyRider 我已经添加了一个脚本的引用,它可以为您记忆分离的HEAD SHA1。 - VonC

9

在修改文件后,您需要

git add

在此之前,先对它们进行操作

git commit

.


2
他说他在本地提交了更改。 - tomgi

5
git commit 

将向您展示本地计算机上有哪些文件,请取消注释要上传的文件

git push origin master

由于git add *对我没有起作用(即使它没有返回错误)。


2
使用句点(.)代替星号(*)表示全部内容。例如:git add . - Dan

2

不确定为什么人们会对那个给出正确答案的人进行负评。对我来说,添加我的电子邮件和姓名确实解决了问题。尽管命令不正确。

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

0

检查 git commit -m 命令

在我的情况下,我只是忘记在 m 前面加上 -

当你这样做时,终端会输出以下错误信息
error: pathspec 'm' did not match any file(s) known to git
error: pathspec 'TESTING' did not match any file(s) known to git

但是,当你尝试执行 git push 时,你不会得到任何错误,但输出将为

Everything up-to-date

顺序应该是:
git status

git add . 如果你想添加所有更改以进行提交

git commit -m "Your Comments"


-2

最近的git版本需要配置用户细节。命令为:git config -g user.name "用户名"

git config -g user.email "ab@mil.com"

这解决了我的问题


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接