Экспорт закладок на другой компьютер

Мне нужен способ экспортировать спрятанное изменение на другой компьютер.

На компьютере1 я сделал

$ git stash save feature

Я пытаюсь получить патч файл в файл, а затем импортировать его на другой компьютер.

$ git stash show -p > patch

Эта команда дает мне файл, который я могу переместить на другой компьютер, на котором клонируется это репо, но вопрос заключается в том, как снова импортировать его в файл.

Спасибо

Ответ 1

Вы можете применить файл исправления (без внесения изменений еще), просто выполнив

git apply patchfile

Затем вы можете просто создать новый stash из текущего рабочего каталога:

git stash

Ответ 2

в качестве альтернативы вы можете создать ветку из своего кошелька (на компьютере 1), используя

git stash branch stashed_changes_branch

зафиксировать изменения:

git commit -a

затем добавьте его как удаленный компьютер 2:

git remote add pc1 [email protected]:/path/to/repo

теперь вы можете получить удаленную информацию, используя

git fetch pc1

теперь вы можете импортировать фиксацию так, как хотите; используя git вишневый выбор, git rebase или все, что вам нравится... Если вы хотите, чтобы он выглядел так, как будто вы выполнили git прикладывание; вы можете использовать git cherry-pick -no-commit.


Если у вас нет прямого соединения между компьютером1 и компьютером2; вы можете использовать удаленный (например, github или что-то подобное):

git push origin stashed_changes_branch

и на компьютере2:

git fetch

Ответ 3

В качестве альтернативы вы можете экспортировать все локальные штампы на другой компилятор следующим образом

  • git pull в вашем старом и новом каталоге git, чтобы обе версии имели последние изменения.
  • скопируйте папку .git из старого каталога git в новый репозиторий

Ответ 4

Другим вариантом является rsync папка .git с одного компьютера на другой компьютер. rsync обрабатывает только изменения файлов (быстрее, чем копия).

Один недостаток этого подхода - это также перезаписывать конфиги, что может быть нежелательно, если вы запускаете разные конфигурации .git между двумя машинами. Но вы могли бы преодолеть это, исключив файлы с опцией --exclude в rsync.

В целом я думаю, что родное решение Git чище, но этот взлом rsync может быть приятным для кого-то, кто спешит, который может быть более знаком с rsync, чем git.

Ответ 5

Команда запуска из исходного сообщения:

git stash show -p [email protected]{x} > patch_file

не работал у меня (по какой-то причине он создал непригодные файлы патчей). Вместо этого мне пришлось:

git stash apply [email protected]{x}
git commit

для каждого штампа, который я хотел передать. Затем я поместил "родительское" репо в файл:///досягаемость репо-объекта "child" и сделал следующее для каждого фиксации:

git fetch file:///path_to_parent_git && git cherry-pick commit_sha
git reset --soft HEAD^
git stash save my_new_stash_on_child

Это сложнее, но помогло.

Ответ 6

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

офис

git commit -m "-stash-"

Кухня

git reset --soft HEAD~1

Ответ 7

Как сделать экспорт Stash в SourceTree:

1) Создайте новую ветку "StashTransfer" из ветки, в которой вы собираетесь использовать свой Stash

2) Примените свой тайник к нему и сделайте коммит

3) Нажмите на свой коммит и сделайте из него патч, возьмите файл патча с собой.

4) Перейдите в другой репозиторий, выберите ту же родительскую ветку, которую вы только что использовали в 1)

5) Действия/Применить патч, выберите Режим: Изменить файлы рабочей копии, нажмите "Применить патч", теперь у вас есть незафиксированные изменения из патча в текущей рабочей среде.

6) Создайте новый Stash для текущего репо

выиграть!