Git проблемы с фиксацией
Я только что обработал свое рабочее дерево, добавленное сначала в индекс, с "$ git commit -m 'test". Я сохранил stdout-put из этого файла, и я вижу вверху его, что он говорит
# 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)"
проблема заключается в том, что мое рабочее дерево не связано с репо, и у меня есть ощущение, что это имеет к этому какое-то отношение.
спасибо
Ответы
Ответ 1
Короткий ответ:
git push -u origin master
Более длинный ответ:
Скорее всего, вы пытаетесь перевести фиксации в ветвь, которая еще не была создана - например, в недавно созданном репозитории Github без автоматического создания файла README. Вызывая git push -u origin master
, вы указываете как удаленный, на который нужно нажать (начало, обычно это git default), так и ветвь (master, также по умолчанию в типичных случаях). Согласно документации git:
-u, - установочный поток Для каждой ветки, которая обновлена или успешно нажата, добавьте ссылку вверх (отслеживание), используемую без аргументов git -pull (1) и другие команды. Для большего информацию см. в разделе branch..merge в git -config (1).
Это означает, что после успешного запуска этой команды с этого момента вы сможете просто использовать git push
и git pull
, и по умолчанию будет origin master
(с некоторыми исключения).
Ответ 2
Прежде чем совершить изменение, вы должны сначала добавить его в индекс:
git add myfile
git commit -m "test"
Кроме того, вы можете работать в более стиле SVN и передавать все, что было изменено:
git commit -a -m "test"
Или вы можете просто добавить и зафиксировать один файл:
git commit myfile -m "test"
Ответ 3
Вы сделали git add .
, прежде чем совершили?
Всегда полезно сделать git status
перед тем, как git add
или git commit
, чтобы увидеть, что было изменено и поставлено.
Также очень удобно делать git diff
, чтобы увидеть конкретные изменения, которые вы собираетесь совершить.
Здесь git status
показывает, добавили ли вы файл, а затем переименовали его.
[email protected]:~$ 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
.
Ответ 4
Еще одно замечание: git add добавляет содержимое этих файлов в индекс в момент его запуска. Если вы запустите git add и затем измените файлы, новые изменения не будут отображаться в индексе.
Ответ 5
Вам действительно нужно прочитать документацию.
git add yourfile
git commit -m "test"
Или, чтобы зафиксировать все измененные файлы -
git commit -a -m "test"
Ответ 6
Если вы перемещаете файлы и используете 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)
Но я не понимаю, почему это не позволяет вам совершать эти изменения.
Ответ 7
Ребята У меня была такая же проблема с Git.
Я запускаю Cygwin на окнах 8.
- проверьте, есть ли у вас репозиторий, который вы хотите зафиксировать.
- проверить путь
$ git remote -v
# Вот как вы можете видеть свой путь
$ git remote set-url origin [email protected]:username/repos.git
# так вы дистанционно устанавливаете новый путь для перемещения файлов в правый репозиторий.
$ git remote -v
#, чтобы проверить, был ли установлен правильный путь.
-
$git добавить.
4.
$ git push origin master
НАДЕЖДА ЭТО ПОМОЩЬ