2016-06-07 2 views
1

Как узнать, находится ли локальный мастер за удаленным мастером в репо с извлечением или извлечением.Редакция филиала GIT в репозитории

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

ответ

1

не так, что я знаю. Если вы выберете, вам не нужно немедленно переустанавливать, а затем «git status» скажет вам, впереди или позади (или и то и другое). Вам нужно будет сделать какой-то «удаленный запрос», чтобы получить нужную вам информацию, и получить этот запрос.

1

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

И в этом разница между git pull и git fetch

+0

Что случилось с «без вытягивания или извлечения»? «прежде чем потянуть или выбрать»? – VonC

+0

Я думаю, что человек, задающий вопрос, был смущен работой «git fetch» ​​и «git pull». Поэтому я просто подумал о том, чтобы разъяснить это, потому что «git fetch» ​​решит проблему в вопросе. –

+0

Нет, человек был * не * смущен: вопрос был: "* без * выборки". Вы не ответили на вопрос. – VonC

1

Вы все еще должны связаться с удаленной репо в некотором роде.

Единственная команда, которая может дать вам намек git ls-remote

git ls-remote origin 

Более точно, сравните:

git ls-remote origin -h refs/heads/master 
git rev-list --max-count=1 origin/master 

Если SHA1 вернулся в мастера филиал отличается от того, у вас есть локально, ваш филиал может быть позади (или впереди, если этот SHA1 можно получить из вашего местного отделения HEAD)

По крайней мере, с git ls-remote , вы не получаете все репо.

+0

Вы можете увидеть пример сценария в http://stackoverflow.com/a/33419013/6309 – VonC