#git #push
#git #толкать
Вопрос:
Я новичок в git. Я только что создал новый проект всего с 4 новыми файлами test1 test2 test3 test4. Затем все, что я сделал, это следующее:
$ git init
$ git add .
$ git commit -m "VERY 1st commit"
вот так просто.
затем я добавил, что удаленный репозиторий также является совершенно новым репозиторием, который я только что создал в bitbucket.org
$ git remote add rakspace http://syedrakib@bitbucket.org/syedrakib/mysamplegit
$ git push rakspace
как вы можете сказать, это совершенно новое рабочее пространство, помещенное в совершенно новое репозиторий. он возвращает это:
Все обновлено
что я здесь делаю не так? Очевидно, что исходные файлы удаленного репозитория НЕ обновляются.
РЕДАКТИРОВАТЬ: у меня есть 2 ветки в моем локальном репозитории: * master * и * new_branch *
Ответ №1:
Поведение по умолчанию git push
заключается в том, чтобы нажимать «соответствующие» ветви. Это означает, что любые ветки на вашей стороне, у которых есть ветка с тем же именем, что и на другой стороне, выталкиваются. В совершенно новом репозитории нет ветвей. Поэтому ветви не совпадают. Вы можете создать на удаленном компьютере ветку с именем, соответствующим вашей ветке git push <remote name> <branch name>
. В вашем случае: git push rakspace master
Вы можете узнать и изменить настройки push, выполнив поиск push.default
в документации git config .
Комментарии:
1. Привет, Райан, я пытался
git push rakspace master
… он все еще говоритEverything up-to-date
. Это потому, что в удаленном репозитории нет соответствующего имени веткиmaster
?2. Если вы это сделали, то это означает, что все обновлено. Конец истории. Т.е. У вас нет коммитов в вашей главной ветке, которых еще нет в удаленной главной ветке.
Ответ №2:
Попробуйте выполнить git push rakspace master
. Думаю, вам нужно указать, какую ветку вы хотите нажать.
Если это не проблема, мне интересно, действительно ли вы добавили что-нибудь в репозиторий, выполнив git add .
?
Попробуйте выполнить
touch TEST
git add .
git commit -m "Committing a file named TEST."
git push rakspace master
Комментарии:
1. Привет, Баткинс, я пытался
git push rakspace master
… он все еще говоритEverything up-to-date
. Это потому, что в удаленном репозитории нет соответствующего имени веткиmaster
?2. я делал это
git add .
несколько раз …. на самом деле я несколько раз вносил некоторые незначительные изменения и несколько раз фиксировал…. не повезло3. Хорошо, просто не был уверен, что у вас действительно есть какие-то файлы для фиксации. Можете ли вы попробовать запустить
git push rakspace -u master
?-u
Опция устанавливает локальную ветку для отслеживания удаленной ветки.4. Чтобы уточнить, когда я сказал удаленную ветку, я имел в виду удаленную главную ветку. В каждом репозитории есть хотя бы одна ветвь (главная ветвь для этого репозитория). Если вы запустите
git branch
, он должен распечататьmaster
, что является вашей главной веткой.5. хорошо …. я понял. ну, я попробовал это. удивительно, что даже это так
Everything Up-To-Date
… aaaarrrgghh.
Ответ №3:
После множества обсуждений в нескольких местах по всему Интернету я полагаю, что решение для первого перехода к чистому новому репозиторию таково
git push rakspace --all
С этого момента двухтактные работают как обычно. КАК СМЕШНО ??!!!
Комментарии:
1. Неверно говорить, что ваша первая операция с новым удаленным репозиторием должна быть a
push --all
. В своем разговоре с Баткинсом вы указали, что в прошлом у вас было несколько ветвей, подразумевая, что ваши репозитории на самом деле не были такими нетронутыми, как указано в вашем вопросе. С двумя действительно новыми репозиториями все, что требуется, — этоgit push <remote name> <branch name>
нажать ветку.2. я обновил свой вопрос фактом о 2 ветвях в моем локальном репозитории …. спасибо, что исправили меня там @RyanStewart .
3. итак,
git push rakspace --all
все ЛИ мои ветки помещены в удаленное репозиторий?4. Да,
--all
опция сообщает git, чтобы он отправлял все ваши локальные ветки без необходимости их перечисления.