如何将本地更改推送到 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 存储库的主要内容,如果未能解决你的问题,请参考以下文章
如何正确地从主仓库中提取,更新本地文件,然后将更改推送到自己的仓库?