опция git только добавлять или только вычитать изменения - PullRequest
1 голос
/ 20 марта 2012

Я часто сталкиваюсь с этой проблемой с git: Я клонирую git-репо какого-то проекта. Затем я делаю изменения в некотором исходном файле, но я не фиксирую его, потому что моя работа не завершена. Но я должен постоянно обновлять репо, чтобы синхронизировать его с мастером. Поэтому я делаю «git pull», чтобы мой репозиторий был современным, и чтобы я мог выпускать свой патч для последнего репо. Теперь предположим, что я отредактировал файл hello.c в своем локальном клоне (еще не зафиксирован), а кто-то другой внес изменения в тот же файл и зафиксировал его в главном репо. Теперь, когда я выполняю «git pull», изменения другого человека добавляются в hello.c, а внесенные мной изменения удаляются. Это естественное поведение, очевидно. Есть ли способ сказать git только «добавлять» изменения, а не «вычитать» что-либо? Или что-то в этом роде? Я не хочу, чтобы мои изменения были удалены при выполнении git pull, но я также хочу работать с последним репозиторием.

1 Ответ

1 голос
/ 20 марта 2012
  • Как сказал Грег - «Фиксируй!». «Зафиксируйте часто, быстро зафиксируйте» - это общее правило в мире VCS в течение многих лет
  • Используйте правильные команды для ваших задач. Если вы не знаете всего за кадром git pull - читайте FM! Узнать разницу между pull и fetch или , см. Примеры в Git Reference

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

Вы никогда самостоятельно разрабатываете ветки, которые появляются справа стороны двоеточия на Pull: линии; они должны быть обновлены по меркам Если вы намереваетесь заняться разработкой на основе удаленного ветвь B, есть линия Pull: для ее отслеживания (т.е. Pull: B: remote-B), и У есть отдельная ветка my-B, чтобы сделать вашу разработку поверх нее.

...