Как начать совершать через git в битбакет - Не видеть изменений

Возможно, я собираюсь сделать это неправильно, но я следую git учебникам, как есть. У меня есть репозиторий на битбакете под названием "testrepos", и я пытаюсь работать с ним.

Сначала я клонирую его с помощью git clone https://[email protected]/my_username/testrepos.git

Теперь repo пуст, поэтому я создал файл main.cpp. Затем я запускаю "git добавить 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.

[email protected] ~
$ cd git

[email protected] ~/git
$ git clone https://[email protected]/my_username/testrepos.git
Cloning into testrepos...
Password:
warning: You appear to have cloned an empty repository.

[email protected] ~/git
$ cd testrepos/

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

[email protected] ~/git/testrepos (master)
$ git add temp.cpp

[email protected] ~/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
#

[email protected] ~/git/testrepos (master)
$ git commit -m 'Committing temp file'
[master (root-commit) 5d659df] Committing temp file
 Committer: unknown <[email protected](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 [email protected]

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

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

[email protected] ~/git/testrepos (master)
$ git push
Password:
Everything up-to-date

Ответ 1

Вам действительно нужно сделать 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. Вам нужно только один раз использовать эту форму команды.

Ответ 2

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

Ответ 3

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

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

Ответ 4

У меня тоже была эта проблема, и я видел много бесполезных советов. Наконец, я сломался и прочитал код для 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)