Можно ли быстро сохранить изменения, чтобы их можно было перенести на другой компьютер через USB-ключ? - PullRequest
2 голосов
/ 10 февраля 2012

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

Вносить любые изменения в онлайн-репо, создавая новую ветку или иным образом, поскольку я не хочу загрязнять репо ненужными коммитами. Создание копии всего репо, так как это оченьLarge. Просеивание через Windows Explorer, чтобы получить все файлы и скопировать их вручную, так как файлов довольно много.

В принципе, есть быстрый способ взятьмоя «работа в процессе» дома со мной, без всяких толчков?

Ответы [ 5 ]

4 голосов
/ 10 февраля 2012

использование

git bundle

Он предназначен для этой цели.Он будет хранить только то, что вы ему скажете.

1 голос
/ 10 февраля 2012

Создание ветки WIP действительно похоже на путь, это действительно довольно быстро, и от него легко избавиться. Тем не менее, я думаю, если бы то, что вы хотели сделать, действительно было возможно, расположенный в центре файл 'diff' был бы в вашей папке .git. Я действительно не знаю об этом, хотя, даже если это возможно, это кажется более грязным и более рискованным, чем просто создание удаленной ветви ...: /

Итак, что бы я сделал, это

git branch WIP
git checkout WIP
push the branch to master 
checkout the branch from home
git rebase -i once you're ready to commit (to squash the "unnecessary commits")
delete the remote branch

Как только вы получите ритм этого, это действительно довольно быстро и безболезненно, и выигрыш от использования распределенных VCS, таких как git

0 голосов
/ 10 февраля 2012

Это отрицательный ответ, чтобы избавить других от неприятностей: я подумал, что если ваш USB-ключ достаточно большой, чтобы вместить хранилище, и вы просто не хотите каждый раз ждать копию, то git stash в сочетании снажатие на USB будет подходящим инструментом.Тем не менее, невозможно просто передать состояние хранилища, так как хранилище фактически использует reflog, а не только ref refs/stash.

0 голосов
/ 10 февраля 2012

Во-первых, я должен сказать, что я также рекомендую WIP-ответ Уилла Бака, поскольку их легко создавать и уничтожать, и они легкие.

В любом случае, то, что вы просите, возможно.

Вы можете создать набор патчей из набора коммитов, скопировать их на USB и затем применить их у себя дома.

Все эти шаги можно выполнить с помощью: git format-patch и git am .

git format-patch создаст список файлов патчей из указанных вами коммитов.

git am будет применять указанные файлы исправлений поверх вашего HEAD.

Книга progit содержит больше информации о том, как работать с этими командами.

0 голосов
/ 10 февраля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...