Как мне заполнить мое пустое рабочее дерево из репозитория в git? - PullRequest
3 голосов
/ 20 декабря 2010

Я должен что-то упустить, потому что я прочитал все документы для сброса, возврата и т. Д., Но я не могу понять, как получить содержимое моего индекса в рабочем дереве.(Я скопировал папку .git из другого места и просто хочу сделать 'get latest').

Ответы [ 3 ]

4 голосов
/ 20 декабря 2010
git commit -m'for now'
git checkout -f
git reset --soft HEAD~
  • На первом шаге будут храниться изменения индекса в DAG хранилища.
  • Здесь необходим шаг checkout, поскольку в вашем хранилище нет рабочего дерева (т.е. оно состоит изничего, кроме .git / directory), и поэтому оформление заказа организует, чтобы рабочее дерево отражало HEAD.
  • Последний шаг указывает ссылку HEAD на его родителя, таким образом эффективно отбрасывая последнийсовершить.Фиксация все еще находится в DAG, на что указывает reflog, если вы когда-нибудь захотите посмотреть на него, но он больше не является частью временной шкалы вашего филиала.Этот шаг является мягким сбросом, что означает, что Git откладывает изменения этого последнего коммита в индексе, и это не меняет рабочее дерево с того, как оно выглядело, когда HEAD указывало на этот последнийсовершить мы совершили.Коммит не является частью вашей истории, но изменения все еще присутствуют в рабочем дереве и на стадии.
2 голосов
/ 20 декабря 2010

Вы пробовали git clone /path/to/myproject.git?

или git clone /path/to/my/copied/.git

1 голос
/ 22 декабря 2010
git checkout -f HEAD

Это приведет к принудительной проверке всех файлов, перезаписывая то, что git считает в настоящее время удалением. HEAD также может быть любой ссылкой (ответвление, идентификатор фиксации и т. Д.).

...