2015-11-20 5 views
1

Я работаю над программным проектом.
Я использую git/github.
Я сейчас единственный разработчик.
Обычно я работаю как от дома, так и от места работы.
Перед началом любой сессии, я делаю git pull, а по окончании - git add . -A && git commit -m "my commit message" && git push --tags origin master (у меня есть gitaddcommitpush).
Вчера, после рабочей сессии, я забыл gitaddcommitpush, из дома :-(
This была моя реакция Whe я понимаю, это :-(
Теперь вопрос:Забыл совершить заговор

Какие действия должны Я выступаю, чтобы работать сегодня, на работе (в другом разделе проекта, чем я работал вчера из дома, конечно), чтобы завтра завтра можно было объединить мои изменения вчера (из дома) и сегодня (от работы)?

+0

Вы не можете войти на свой домашний компьютер с работы? – TemplateRex

+0

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

+0

Работайте над отдельной ветвью, а затем объедините это с помощью @home one? – hjpotter92

ответ

2

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

Вы можете просто работать в офисе сегодня, как обычно, и совершать свою работу. Когда вы вернетесь на работу, вы можете сделать git pull --rebase, чтобы внести изменения с работы. Ваш локальный филиал будет находиться за удаленной версией одной или несколькими коммитами. Rebasing заставит вашу домашнюю ветку выглядеть так, как если бы вы на самом деле делали работу прошлой ночи над сегодняшней работой в офисе. Выполните следующие действия в домашних условиях:

git commit -m 'Changes from last night which I forgot' 
git pull --rebase origin master 

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

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

remote: A --- B --- C 
       \ 
local:    D 

Здесь, совершают C это обязательство вы сделали на работе сегодня и совершить D - это фиксация, которую вы совершите сегодня вечером (для работы прошлой ночи). Теперь после того, как вы git pull --rebase origin master диаграмма будет выглядеть следующим образом:

remote: A --- B --- C 
        \ 
local:    D' 

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

+0

Спасибо! Ваше объяснение было очень ясным, для меня, даже если я git newbe ... :-(Я попробую это дома! :-) – MarcoS

+0

Что вы думаете о r2_d2 советовать (нормально работать и нажимать изменения, при домой тянуть их и толкать старые изменения ...)? – MarcoS

+0

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