2016-01-24 5 views
0

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

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

Дело в том, что эти файлы не имеют серьезных изменений, которые я сделал на моем домашнем ПК, и я не хочу потерять свой локальный контент, потому что я вытащил более ранние версии из репо.

Как я могу заставить свои файлы на свое репо не потянуть?

+0

Почему вы не делали изменения чаще? Вы знаете, что вытаскивание не просто удаляет ваши изменения (вам придется [слить или переустановить] (http://stackoverflow.com/questions/804115/when-do-you-use-git-rebase-instead-of -git-слияние))? – jonrsharpe

+0

Я не очень хорош в git. Нет, у меня нет других соавторов, только я с двумя ПК. Проблема в том, что я не тянул, прежде чем начал делать изменения, потому что я не использовал это, чтобы использовать git. – Flux

+0

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

ответ

2

Вы можете заставить нажим,

git push origin master --force 

Или использовать короткий флаг,

git push origin master -f 
+0

Это приведет к удалению изменений уже в репо. – adarshdec23

+0

Да. В этом случае пользователь в порядке с – Msp

+0

. Мой плохой, я не видел последнюю часть. – adarshdec23

1
git pull --rebase origin branchName 

Это будет первым тянуть изменения на локальном репо (ваш компьютер), а затем применить ваш локальные изменения поверх него. Таким образом, вы не потеряете изменения, внесенные вами локально. После этого вы можете просто сделать

git push origin branchName 

Это обновит ваше дистанционное репо.

+0

Спасибо за ваш ответ, это помогло. – Flux

1

Вы не теряете свой местный контент, когда вы тянете; вы объединяете изменения других (в данном случае от себя с другого ПК) с собственными изменениями.

Вы можете нажать на другую ветку и отбросить ветвь, которая имеет другие изменения.

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

+0

Благодарим вас за этот очень информативный ответ. – Flux