не удалось git вытащить тот же файл из определенного идентификатора фиксации на локальной машине?

Окружение:

  • макОС 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 Pull первые файлы фиксации, но не удалось

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

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

Ожидал

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

person Jack    schedule 28.06.2018    source источник
comment
Вы пытаетесь вытащить один коммит?   -  person evolutionxbox    schedule 28.06.2018


Ответы (1)


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

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

git push используется для отправки изменений в другие репозитории. На самом деле вы только что создали ссылку на тот же репозиторий с помощью push. Следовательно, все актуально, потому что вы пытаетесь обновить сам репозиторий.

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

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

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

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

person petrpulc    schedule 28.06.2018