мерзавец совершать проблемы - PullRequest
25 голосов
/ 17 ноября 2009

Я только что закомментировал свое рабочее дерево, сначала добавив его в индекс, с помощью "$ git commit -m 'test'". Я сохранил stdout-put из этого файла в файл, и в верхней его части отображается надпись * 1001. *

# On branch master  
# Changed but not updated:  
# (use "git add/rm ..." to update what will be commited)  
# (use "git checkout -- ..." to discard changes in working directory)"  

проблема в том, что мое рабочее дерево не передается в репозиторий, и я чувствую, что это как-то связано с этим

спасибо

Ответы [ 7 ]

28 голосов
/ 05 февраля 2013

Краткий ответ:

git push -u origin master

Более длинный ответ:

Скорее всего, вы пытаетесь отправить коммиты в ветку, которая еще не была создана - например, во вновь созданном репозитории Github без автоматически созданного файла README. Вызывая git push -u origin master, вы указываете как удаленный, который вам нужно передать (источник, который обычно является git по умолчанию), так и ветвь (master, также по умолчанию в типичных случаях). Согласно документации git:

-u , - настройка потока Для каждой ветки, которая обновлена ​​или успешно отправлена, добавьте ссылку вверх по течению (отслеживание), используемую git-pull (1) без аргументов и другие команды. Для большего информация, см. branch..merge в git-config (1).

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

6 голосов
/ 17 ноября 2009

Прежде чем вы внесете изменение, вы должны сначала добавить его в индекс:

git add myfile
git commit -m "test"

Кроме того, вы можете работать в стиле, более похожем на SVN, и фиксировать все, что изменилось:

git commit -a -m "test"

Или вы можете просто добавить и зафиксировать один файл:

git commit myfile -m "test"
2 голосов
/ 17 ноября 2009

Вы делали git add . до совершения?

Всегда разумно сделать git status перед git add или git commit, чтобы посмотреть, что также изменилось и организовано.

Также очень удобно сделать git diff, чтобы увидеть конкретные изменения, которые вы собираетесь совершить.

Вот что показывает git status, если вы добавили файл и затем переименовали его.

me@home:~$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   foo.txt
#
# Changed but not updated:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   deleted:    foo.txt
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   bar.txt

На данный момент вы можете просто сделать git add ., а затем git status will give you more information, perhaps pointing out that you still have a new file and a deleted file called foo.txt . To fix this you need to manually git rm foo.txt before doing git commit`

В будущем, если у вас есть файлы в git-репо, которые вы хотите переместить, вы должны использовать git mv.

1 голос
/ 17 ноября 2009

Еще одна вещь, которую стоит отметить, git add добавляет содержимое этих файлов в индекс во время его запуска. Если вы запустите git add, а затем измените файлы, новые изменения не будут отображаться в индексе.

0 голосов
/ 19 сентября 2014

Ребята, у меня была такая же проблема с Git.
Я использую Cygwin на Windows 8.

  1. проверьте, есть ли у вас репозиторий, который вы хотите зафиксировать.
  2. проверить путь

$ git remote -v # так вы можете видеть свой путь

$ git remote set-url origin git@github.com:username/repos.git # это то, как вы устанавливаете новый путь удаленно для передачи файлов в правильный репозиторий $ git remote -v # чтобы проверить, был ли задан правильный путь.

  1. $ git add.

4

 $ git push origin master

НАДЕЖДА ЭТО ПОМОГАЕТ

0 голосов
/ 17 ноября 2009

Если вы перемещаете файлы и затем используете git add, git добавляет только новую копию, но не удаляет старую:

$ git status
# On branch master
nothing to commit (working directory clean)
$ mv from to
$ git add .
$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   to
#
# Changed but not updated:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   deleted:    from
#
$ git commit -m "..."
$ git status
# On branch master
# Changed but not updated:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   deleted:    from
#
no changes added to commit (use "git add" and/or "git commit -a")

Чтобы удалить старые копии, вы также должны использовать git rm:

$ git rm from
rm 'from'
$ git commit -m "..."
$ git status
# On branch master
nothing to commit (working directory clean)

Но я не понимаю, почему это не позволяет вам совершать эти изменения.

0 голосов
/ 17 ноября 2009

Вы действительно должны прочитать документацию.

git add yourfile
git commit -m "test"

Или, чтобы зафиксировать все измененные файлы -

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