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


81

我正在测试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看到这个问题时,请查看stackoverflow.com/questions/5713563/...
JGallardo

Answers:


102

使用git push origin master代替。

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

有关更多信息,请查看此资源


2
我还应该提到,当您克隆某些内容时,origin存储库是自动定义的。
Chuck Callebs

15

这是一种安全措施,可避免推送尚未准备好发布的分支。松散地说,通过执行“ 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提取后运行“ git status”时,将显示此信息。


8

我支持从https://git-scm.com/下载的Git,并按照ssh的说明进行操作,以获取指示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

它甚至适用于将master合并GitHub中的gh-pages

git checkout gh-pages
git merge master
git push

0

master表示“ git push”命令的第二个参数(' ')-

$ git push origin master

可以通过push从' news-item'分支启动“ ”命令来使之清晰。它导致本地“ master”分支被推送到远程master分支。有关更多信息,请参阅

https://git-scm.com/docs/git-push

其中,<refspec>

[<repository> [<refspec>…​]

的意思是“ specify what destination ref to update with what source object.

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

<code>在此处输入图片描述</ code>

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.