Як надсилати локальні зміни до віддаленого сховища git на bitbucket


82

Я тестую 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?


Будь-який новий мерзотнику побачити це питання, будь ласка , вид stackoverflow.com/questions/5713563 / ...
JGallardo

Відповіді:


102

Використовуйте git push origin masterзамість цього.

У вас є сховище локально, і початковий git pushсимвол "натискає" на нього. Це не потрібно робити так (як це місцевий) , і він показує все , як уточнений. git push origin masterвизначає віддалене сховище ( origin) та розташовану там гілку ( master).

Для отримання додаткової інформації перегляньте цей ресурс .


2
Слід також зазначити, що коли ви щось клонуєте, originсховище визначається автоматично.
Чак Каллебс

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 status" після отримання git.


8

Я з Git завантажив з https://git-scm.com/ і налаштував 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

Це навіть працює для натискання на злиття майстра до gh-сторінок у GitHub

git checkout gh-pages
git merge master
git push

0

Значення 2-го параметра (' 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>

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.