Как начать делать коммит через git в bitbucket - не видя изменений - PullRequest
11 голосов
/ 16 октября 2011

Возможно, я ошибаюсь, но я следую инструкциям git как есть.У меня есть репозиторий в bitbucket под названием «testrepos», и я пытаюсь с ним работать.

Сначала я клонирую его с git clone https://my_username@bitbucket.org/my_username/testrepos.git

Теперь репозиторий пуст, поэтому я сделалфайл с именем main.cpp.Затем я запускаю «git add main.cpp».Если я сейчас запускаю git status, я вижу, что есть новый файл с именем main.cpp для фиксации.

Наконец, я запускаю git commit -m 'First commit'.Есть 0 изменений, 0 вставок и 0 удалений!Почему мои файлы не фиксируются?Я также использую push и pull.

edit Вот полный журнал:

Welcome to Git (version 1.7.7-preview20111014)

Run 'git help git' to display the help index.
Run 'git help <command>' to display help for specific commands.

chris@EDI ~
$ cd git

chris@EDI ~/git
$ git clone https://my_username@bitbucket.org/my_username/testrepos.git
Cloning into testrepos...
Password:
warning: You appear to have cloned an empty repository.

chris@EDI ~/git
$ cd testrepos/

chris@EDI ~/git/testrepos (master)
$ git pull
Password:
Your configuration specifies to merge with the ref 'master'
from the remote, but no such ref was fetched.

chris@EDI ~/git/testrepos (master)
$ git add temp.cpp

chris@EDI ~/git/testrepos (master)
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#       new file:   temp.cpp
#

chris@EDI ~/git/testrepos (master)
$ git commit -m 'Committing temp file'
[master (root-commit) 5d659df] Committing temp file
 Committer: unknown <chris@EDI.(none)>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 temp.cpp

chris@EDI ~/git/testrepos (master)
$ git pull
Password:
Your configuration specifies to merge with the ref 'master'
from the remote, but no such ref was fetched.

chris@EDI ~/git/testrepos (master)
$ git push
Password:
Everything up-to-date

Ответы [ 5 ]

34 голосов
/ 17 октября 2011

Вам действительно нужно сделать git push origin master, а не просто git push. Это связано с тем, что стандартное поведение git push заключается в том, чтобы переместить каждую ветвь к одной с тем же именем на удаленной стороне, , пока существует удаленная ветвь с таким именем . В этом случае ваш репозиторий BitBucket полностью пуст (без ветки master, так как нет фиксаций), поэтому никакие ветви не будут вытеснены поведением по умолчанию git push или git push origin. Ваш толчок сработает, если вы сделаете:

git push origin master

... но так как это ваш первый толчок, вы должны сделать:

git push -u origin master

... который также устанавливает ветвь master в origin как ветвь по умолчанию для вашей ветки master. Эту форму команды нужно использовать только один раз.

3 голосов
/ 17 октября 2011

Попробуйте git push origin master.

1 голос
/ 18 января 2012

У меня тоже была эта проблема, и я видел много бесполезных советов. Наконец, я сломался и прочитал код для git-pull и git-fetch. В моем случае проблема вызвана наличием « tagopt = --tags » в файле конфигурации для рассматриваемого пульта. Похоже, это приводит к тому, что git-fetch выполняет «автоматическое отслеживание тегов», что в некоторых случаях приводит к нежелательному усечению файла FETCH_HEAD. Это в свою очередь приводит к сбою git-pull с ошибкой:

Ваша конфигурация указывает на слияние с ref 'master' с пульта, но такой ссылки не было получено.

Я действительно недостаточно уверен в внутренностях git, чтобы сказать, является ли это ошибкой или предполагаемым поведением, или просто я не очень хорошо понимаю git. Однако удаление настроек « tagopt » из моих файлов конфигурации решило проблему для меня во всех случаях.

Обратите внимание, это особенно сбивает с толку, потому что при ручном запуске "git fetch --tags ..." используется другой путь к коду, а FETCH_HEAD остается в хорошем состоянии.

(я использую git версии 1.7.4.1)

1 голос
/ 16 октября 2011

Был ли файл, который вы добавили, пустым?В сообщении указывается количество файлов изменений, а также количество вставленных и удаленных строк.Если вы только что добавили пустой файл, git не считает это «измененным» в числах, которые он генерирует.Это, однако, фиксирует файл.

Попробуйте вернуться обратно в bitbucket и просмотреть список файлов репозитория в веб-браузере.Вы должны увидеть там свой файл.

0 голосов
/ 20 июня 2014

git push -u origin --all

в первый раз

git push origin --all

после

- это то, что указано в битбакете 101

https://confluence.atlassian.com/display/BITBUCKET/Create+a+repository

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...