如何将本地更改推送到 Bitbucket 上的远程 Git 存储库

Posted

技术标签:

【中文标题】如何将本地更改推送到 Bitbucket 上的远程 Git 存储库【英文标题】:How to push local changes to a remote Git repository on Bitbucket 【发布时间】: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 的人看到这个问题,请查看***.com/questions/5713563/… 【参考方案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://***.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>…​]

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

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

【讨论】:

以上是关于如何将本地更改推送到 Bitbucket 上的远程 Git 存储库的主要内容,如果未能解决你的问题,请参考以下文章

如何正确地从主仓库中提取,更新本地文件,然后将更改推送到自己的仓库?

如何将本地分支 A 中的多个本地提交推送到远程分支 B 并从本地分支 A 中清除它们?

Xcode 错过了“推送到远程”

Git LFS 文件未推送到远程仓库

无法推送到 Bitbucket 上的 Git 存储库

无法推送到 Bitbucket 上的 Git 存储库