【问题标题】:How to push local changes to a remote Git repository on Bitbucket如何将本地更改推送到 Bitbucket 上的远程 Git 存储库
【发布时间】:2011-12-03 03:45:59
【问题描述】:

我正在测试 Git 和 Bitbucket。

我在 Bitbucket 上创建了一个存储库,并创建了该存储库的本地副本,我正在向其中提交文件。我似乎无法将文件从本地存储库推送到远程存储库。

这就是我正在做的事情:

git clone https://me@bitbucket.org/me/test.git
cd test
touch dummy
git add dummy
git commit dummy -m "my first git commit"
git push

最后一行输出:

Everything up-to-date

当我登录 Bitbucket 时,我看不到我的虚拟文件。

我做错了什么?

这样做很有效:

 git push origin master:master

这和简单的git push有什么区别?

【问题讨论】:

标签: git bitbucket


【解决方案1】:

请改用git push origin master

您在本地有一个存储库,最初的 git push 正在“推送”到它。没有必要这样做(因为它本地的)并且它显示所有内容都是最新的。 git push origin master 指定一个远程存储库 (origin) 和位于那里的分支 (master)。

欲了解更多信息,请查看this resource

【讨论】:

  • 我还应该提到,当你克隆一些东西时,origin 存储库是自动定义的。
【解决方案2】:

这是一种安全措施,可避免推送尚未准备好发布的分支。粗略地说,通过执行“git push”,只会推送已经存在于服务器上的同名本地分支,或者使用 localbranch:remotebranch 语法推送的分支。

要将所有本地分支推送到远程存储库,请使用--all

git push REMOTENAME --all
git push --all

或指定要推送的所有分支:

git push REMOTENAME master exp-branch-a anotherbranch bugfix

此外,将-u 添加到“git push”命令中很有用,因为这将告诉您本地分支是在远程分支之前还是在远程分支之后。当您在 git fetch 后运行“git status”时会显示此信息。

【讨论】:

    【解决方案3】:

    我正在使用从 https://git-scm.com/set up ssh 下载的 Git,请按照https://stackoverflow.com/a/26130250/4058484 的说明进行回答。

    在我的 Bitbucket 帐户中验证生成的公钥后,通过参考 http://www.bohyunkim.net/blog/archives/2518 上解释的步骤,我发现只有 'git push' 是工作:

    git clone https://me@bitbucket.org/me/test.git
    cd test
    cp -R ../dummy/* .
    git add .
    git pull origin master 
    git commit . -m "my first git commit" 
    git config --global push.default simple
    git push
    

    Shell 响应如下:

    $ git push
    Counting objects: 39, done.
    Delta compression using up to 2 threads.
    Compressing objects: 100% (39/39), done.
    Writing objects: 100% (39/39), 2.23 MiB | 5.00 KiB/s, done.
    Total 39 (delta 1), reused 0 (delta 0)
    To https://me@bitbucket.org/me/test.git 992b294..93835ca  master -> master
    

    它甚至可以在 GitHub 中推动合并 master to gh-pages

    git checkout gh-pages
    git merge master
    git push
    

    【讨论】:

      【解决方案4】:

      git push”命令的第二个参数('master')的含义-

      git push origin master
      

      可以通过从“news-item”分支启动“push”命令来明确。它导致本地“master”分支被推送到远程“master”分支。如需更多信息,请参阅git-push

      <refspec> 在哪里

      [<repository> [<refspec>…​]
      

      的意思是“指定用什么源对象更新什么目标引用。”

      供您参考,这是我如何验证此声明的屏幕截图。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-11
        • 1970-01-01
        • 2013-04-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多