2017-01-16 2 views
0

Git stash - очень полезное семейство команд, но ничего не добавляет к командам (т.е. вы не можете совершать команду без команды commit, в то время как у вас могут быть обходные пути, stash).Git: Имитировать git stash без кодовой команды

Как бы вы это сделали, если бы вам пришлось прикладывать свою работу, но не имели приставки?

+0

Я сомневаюсь в предпосылке, которую вы не можете совершить без подкоманды 'commit'. См., Например, команду 'commit-tree' для низкоуровневого интерфейса https://git-scm.com/docs/git-commit-tree. – Boldewyn

+0

То, как я это делал с другими системами управления версиями, состоял в том, чтобы по существу выполнить 'git diff> changes.patch'. И затем повторно примените их позже (с помощью git вы можете сделать это с помощью 'git apply 'или вы можете использовать команду' patch' для повторного применения). Это медведь, которому можно управлять, но это можно сделать. «git stash» более дружелюбен. – jszakmeister

+0

Также вы можете взглянуть на [Gitless] (http://gitless.com/). Они пытались решить, что, по их мнению, более фундаментальные проблемы с Git. В Gitless, когда вы меняете ветви, он сохраняет ваши изменения с помощью ветки, предположительно устраняя необходимость в тайнике. Я не согласен с этим утверждением, но это интересный проект. – jszakmeister

ответ

1

Один из вариантов, который мне нравится, - это просто сделать временную фиксацию на соответствующей ветке, например.

# work work work 
git commit -m 'Completed the feature' 

Теперь вы можете перейти на другую ветку и продолжить движение оттуда. Когда приходит время, чтобы вернуться к исходной ветви, вы можете закончить функцию и изменить ВРЕМЕННЫЙ фиксации:

git checkout original_branch 
# finish the work 
git commit --amend 

Теперь остается только один фиксации, и вы были в состоянии сделать исправление где-то остальное.

Обратите внимание, что git stash внутренне фактически совершает фиксацию (на самом деле 2 или 3 из них), чтобы сохранить состояние вашего рабочего каталога и индекса.

Прочитать lengthy answer about git stash от @torek, перейдя по ссылке.

Смежные вопросы