Восстановить состояние ступени после сброса - PullRequest
1 голос
/ 24 апреля 2019

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

Ответы [ 2 ]

1 голос
/ 24 апреля 2019

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


В будущем вот некоторые действия, которые вы можете предпринять:

  • чаще коммит
  • вариант: коммит, затем откат:

    # add stuff :
    git add ... / git add -p ...
    
    git commit -m "work in progress"
    git reset --soft HEAD^
    

    это добавит созданный коммит в reflog текущей ветки,
    использование git reset --soft сохранит область подготовки

  • использование git stash && git stash apply
    git stash создает два коммита:

    1. один длясодержимое области подготовки,
    2. один для содержимого всех измененных файлов

Вот выходные данные команды:

$ git stash && git stash apply
Saved working directory and index state WIP on master: 7475d1d {message}
On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
[...]

вот как выглядят коммиты:

    $ git log --oneline --graph stash@{0}
    *   79d9cd7 (refs/stash) WIP on master: 7475d1d {message} # <- full stash
    |\  
    | * 43f3da0 index on master: 7475d1d {message}            # <- staging area's content
    |/  
    *   7475d1d (HEAD -> master, origin/master) {message}     # <- current active commit
    |\
    ...
1 голос
/ 24 апреля 2019

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

git add path/to/the/file

Если была поставлена ​​только часть файла, вы можете добавить патч:

git add --patch path/to/the/file
...