не удалось git вытащить тот же файл с конкретным идентификатором фиксации на локальном компьютере? - PullRequest
0 голосов
/ 28 июня 2018

ENV:

  • macOS 10.13.5

Git init и отправка измененных файлов на локальный компьютер

Примечания: XXX - это имя пользователя локальной машины

    ➜  gittest git init
    Initialized empty Git repository in /Users/XXX/Desktop/gittest/.git/
    ➜  gittest git:(master) echo "hello" > 1.md
    ➜  gittest git:(master) ✗ git add 1.md
    ➜  gittest git:(master) ✗ git commit -m"hello"
[master (root-commit) ea37549] hello
 1 file changed, 1 insertion(+)
 create mode 100644 1.md
    gittest git:(master) ✗ git push --set-upstream /Users/XXX/Desktop/gittest/.git/ master
    Branch 'master' set up to track remote branch 'master' from '/Users/XXX/Desktop/gittest/.git/'.
    Everything up-to-date
    gittest git:(master) ✗ echo "hello 2" >>1.md # change files
    ➜  gittest git:(master) ✗ git add 1.md
    ➜  gittest git:(master) ✗ git commit -m"hello 2"
[master 4593958] hello2
 1 file changed, 1 insertion(+)
    ➜  gittest git:(master) ✗ git push
    Everything up-to-date

Git Получить первые файлы коммитов, но не удалось

➜  gittest git:(master) git pull
From /Users/XXX/Desktop/gittest/
 * branch            master     -> FETCH_HEAD
Already up to date.

Но он не мог вернуть файл, который был впервые передан в git push.

Ожидаемое

  • Git pull-файлы с указанным идентификатором коммита и исходные файлы обложек с одинаковыми именами.
  • Я не хочу использовать удаленный сервер или репозиторий (например, Github). Пожалуйста, не предлагайте решения по этому поводу.
  • Я не хочу создавать другую ветку и объединять ее. Я просто хочу закончить свою цель в мастер ветке.

1 Ответ

0 голосов
/ 28 июня 2018

Вы много чего перепутали

git init создает полный репозиторий, поэтому git commit - это команда для создания ревизии в этом репозитории.

git push используется для отправки изменений в другие репозитории. Вы на самом деле просто создали ссылку на тот же репозиторий своим нажатием. Поэтому все обновлено, поскольку вы пытаетесь обновить сам репозиторий.

git pull используется для получения изменений из других хранилищ и по умолчанию является ярлыком для git fetch (обновить локальные знания об удаленном хранилище) и git merge для объединения, чтобы объединить текущий ветка с обновленными локальными знаниями о ветке в удаленном репозитории.

Если вы не хотите иметь дело с удаленными репозиториями, не используйте git pull и git push.

Перемещение Git

Чтобы перейти к конкретному коммиту в хранилище, используйте git checkout. Но будьте осторожны, git checkout <commit id> закончится в отсоединенном HEAD состоянии.

...