Git推动不会做任何事情(一切都结束了

我正在尝试更新github上的git存储库。 我做了一堆更改,添加了它们,然后尝试做一个git push。 回应告诉我,一切都是最新的,但显然不是。

git remote show origin 

回应我期望的存储库。

为什么git在存储库中不存在本地提交时告诉我存储库是最新的?

  [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不会推送你所有的本地分支机构:它如何知道哪些远程分支机构推送它们? 它只会推送已配置为推送到特定远程分支的本地分支。

在我的git版本(1.6.5.3)上,当我运行git remote show origin它实际上会打印出哪些分支被配置为push:

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的分支,我猜这个分支还没有设置为推动任何事情。 所以没有参数的git push不会推送该分支上的提交。

当它说“一切都是最新的”时,这意味着“你告诉我所有的分支都是最新的”。

问:那么我怎么能推我的提交?

如果你想要做的是把你的改变develop成为origin/master ,那么你应该把它们合并到你的本地master然后按下:

git checkout master
git merge develop
git push             # will push 'master'

如果你想要在远程创建一个develop分支,与master分离,然后为git push提供参数:

git push origin develop

这将:在远程设备上创建一个名为develop的新分支; 并将该分支与您当地的develop分支进行更新; 并设置develop推动产生origin/develop以便将来,无需论证的git push将自动推动develop

如果你想把你的本地develop推广到一个叫做除develop之外的远程分支,那么你可以说:

git push origin develop:something-else

然而,这种形式将不会develop成永远推动origin/something-else未来origin/something-else ; 这是一次性操作。


当我的Sourcetree应用程序在暂存期间崩溃时,这发生在我身上。 而在命令行中,它好像以前的git add已经损坏。 如果是这种情况,请尝试:

git init
git add -A
git commit -m 'Fix bad repo'
git push

或者最后一条命令,您可能需要设置分支。

git push --all origin master

请记住,如果你没有做任何分支或任何这种分支,这就足够了。 在这种情况下,确保你推入正确的分支,如git push origin develop


尝试:

git push --all origin
链接地址: http://www.djcxy.com/p/94801.html

上一篇: Git push won't do anything (Everything up

下一篇: date" though there is a difference