Git тянуть к индексу - PullRequest
       2

Git тянуть к индексу

0 голосов
/ 09 января 2011

Есть ли способ получить удаленные изменения в индексе вместо непосредственного создания нового коммита?

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

Спасибо

Ответы [ 5 ]

3 голосов
/ 09 января 2011

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

git fetch

Затем вы можете объединить извлеченные изменения с текущим индексом, не настраивая коммит слияния, но это довольно непонятная и необычная вещь, которую нужно делать.

git read-tree -m HEAD origin/remote-branch

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

git read-tree -m $(git merge-base HEAD origin/remote-branch) HEAD origin/remote-branch

Прочтите справочную страницу для git read-tree для получения подробной информации о различиях.

1 голос
/ 09 января 2011

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

Сказав, что, если вы выполните git fetch и git merge --no-commit, слияние будет выполнено в вашем рабочем пространстве (и в индексе), но не будет зафиксировано, а метаданные останутся в состоянии, чтобы при выполнении фиксации он будет помечен как коммит слияния. Это то, что вам нужно?

0 голосов
/ 26 января 2012

Взгляните на этот ответ . Возможно, вы захотите изменить свою конфигурацию, чтобы избежать фиксации слияния.

0 голосов
/ 25 января 2012

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

git-pull --no-commit git@github.com:username/project.git
0 голосов
/ 09 января 2011

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

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