Як надсилати локальні зміни до віддаленого сховища 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.