关于dvcs:Git push不会做任何事情(一切都是最新的)

Git push won't do anything (everything up-to-date)

我正在尝试更新GitHub上的Git存储库。我做了一系列的修改,加上它们,承诺然后尝试做一个git push。回复告诉我一切都是最新的,但显然不是。

1
git remote show origin

用我期望的存储库进行响应。

为什么Git告诉我当存在在存储库上不可见的本地提交时,存储库是最新的?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
  [searchgraph]  git status
# On branch develop
# Untracked files:
#   (use"git add <file>..." to include in what will be committed)
#
#       Capfile
#       config/deploy.rb
nothing added to commit but untracked files present (use"git add" to track)

  [searchgraph]  git add .

  [searchgraph]  git status
# On branch develop
# Changes to be committed:
#   (use"git reset HEAD <file>..." to unstage)
#
#       new file:   Capfile
#       new file:   config/deploy.rb
#

  [searchgraph]  git commit -m"Added Capistrano deployment"
[develop 12e8af7] Added Capistrano deployment
 2 files changed, 26 insertions(+), 0 deletions(-)
 create mode 100644 Capfile
 create mode 100644 config/deploy.rb

  [searchgraph]  git push
Everything up-to-date

  [searchgraph]  git status
# On branch develop
nothing to commit (working directory clean)


git push不推你所有的本地分支:它怎么会知道一个远程推送他们两个?它只pushes本地产业,已经configured两推两种(一特有的远程分支。

在我的大学(1.6.5.3 Git版本),当它运行git remote show origin打印出来,这实际上是对行业的configured推:

1
2
3
Local refs configured for 'git push':
  master pushes to master (up to date)
  quux   pushes to quux   (fast forwardable)

问:我可以推,两master没有关于这一切的!

当你git clone违约,它集市上你的本地master支部"两推master远程的分支(称为局部origin/master),所以如果你犯了一master只读,然后一个简单的git push始终推你换回来的。

然而,从输出代码发布你的,你是在一个叫develop分支,它的guessing还没有看到IP两推两个事情。所以没有git push题元不会推……commits分支。

当它说,"一切最新的",它的意思是"所有的部门,你已经告诉我如何推的是最新的。"

问:那么我可以在我的commits推吗?

如果你想做的是把你从develop换成origin/master,那么也许你应该MERGE他们进入你的局域网,然后推master

1
2
3
git checkout master
git merge develop
git push             # will push 'master'

如果你想创造一develop冰在远程分支,从master独立供电,然后两个git push:题元

1
git push origin develop

这将创建一个新的分支:所谓的develop在远程和分支;把这两个日期与你的IP局域网上develop支行;鸭develop两推两个origin/develop母猪,在未来,没有git push题元develop会自动推送。

如果你想要你的本地develop两推两个远程分支称为develop比其他的东西,你可以说:

1
git push origin develop:something-else

然而,这也正是不会看到的两个IP develop总是推在未来两个origin/something-else;它的一次手术。


当这发生在我的sourcetree坠毁在分期的应用。鸭子在命令行,它似乎像我以前git add已经corrupted。如果这是《案例,尝试:

1
2
3
4
git init
git add -A
git commit -m 'Fix bad repo'
git push

在货物的命令,你可能需要看两个分支。

1
git push --all origin master

熊在提醒,这是足够的,如果你没有做任何分支或任何那黑色的。在那情况,确保你在正确的推git push origin develop分支状。


试试:

1
git push --all origin


请尝试进行最后一次提交,然后执行git push origin HEAD:master


现在,它的出现为你是在发展的分支。你有一个在你的源分支的起源吗?如果不是,git push origin develop试试。"它会工作git push知道关于一个在你的源分支的起源。

为进一步的阅读,我会看你的《送出去pages,'节的例子。


具体来说,如果要将某个内容合并到master,可以执行以下步骤。

1
2
3
git add --all // If you want to stage all changes other options also available
git commit -m"Your commit message"
git push // By default when it clone is sets your origin to master or you would have set sometime with git push -u origin master.

在拉请求模型中,创建一个新的本地分支,然后将该分支推送到远程,这是一个常见的实践。为此,您需要提到要在远程将更改推送到哪里。您可以通过在推送时提到遥控器来实现这一点。

1
git push origin develop // It will create a remote branch with name"develop".

如果要创建本地分支名称以外的分支,可以使用以下命令执行此操作。

1
git push origin develop:some-other-name


对于我来说,其他解决方案都不起作用。我必须备份新的修改过的文件(如git status所示),然后运行git reset --hard。这使我可以重新与远程服务器对齐。添加新的修改文件,然后运行

1
2
3
git add .
git commit -am"my comment"
git push

成功了。我希望这能帮助别人,作为"最后机会"的解决方案。


当这发生在我^C在中间的一个git pushGitHub。GitHub没有节目,已经改变了方式,然而。

这两种修复方式的变化,在我工作的树,然后承诺,例如一次。它perfectly精细的工作。


我尝试了很多方法,包括这里定义的方法。我得到的是,

  • 确保存储库的名称有效。最好的方法是从存储库站点复制链接并粘贴到GitBash中。

  • 确保已提交选定的文件。

    1
    git commit -m"Your commit here"

  • 如果两个步骤都不起作用,请尝试

    埃多克斯1〔8〕


这件事发生在我身上。我只是重新提交了更改,然后它被推了出去。


谢谢两个斯托克斯。根据他的回答问题,你可以练习,以不同的方式(用这种方式)。更新你的产品目录,你应该reinitialize发信息

1
git init

你可以提交和更新两个主推


相反,您可以尝试以下操作。你不必去master;你可以直接从你的分支本身强制进行更改。

如上所述,当您执行REBASE时,您正在更改分支的历史记录。因此,如果您尝试在重新平衡后执行正常的git push,Git将拒绝它,因为没有从服务器上的提交到分支上的提交的直接路径。相反,您需要使用-f--force标志来告诉Git是的,您真的知道自己在做什么。执行强制推送时,强烈建议您将push.default配置设置设置为simple,这是Git2.0中的默认设置。要确保配置正确,请运行:

1
$ git config --global push.default simple

一旦正确,您就可以运行:

1
$ git push -f

检查你的请求。应该更新!

有关更多详细信息,请转到如何重新设置拉请求的底部。


也要确保你在正确的开关的两个分支。


1
git push origin master