Является ли "refs /heads / master" таким же, как "refs / remotes / origin / master" в Git? - PullRequest
25 голосов
/ 24 сентября 2011

Вопрос прост: refs/heads/master - это то же самое, что и refs/remotes/origin/master? Если в некоторых случаях это не так, как я могу узнать, когда это не так и что это тогда?

Ответы [ 2 ]

32 голосов
/ 24 сентября 2011

Это два разных символических имени, которые могут указывать на разные вещи.refs/heads/master - это ветка в вашей рабочей копии с именем master.Часто это ветвь отслеживания refs/remotes/origin/master, потому что origin является именем по умолчанию для удаленного, созданного git clone, и его первичная ветвь обычно также называется master.

Вы можете увидеть разницу междуих с git rev-list refs/heads/master..refs/remotes/origin/master, которые будут пустыми, если они одинаковы, и в противном случае будут перечислены коммиты между ними.

25 голосов
/ 25 сентября 2011

Ключевое отличие, которое нужно понимать, состоит в том, что ветви под refs/heads/ являются ветвями, которые, когда у вас есть один извлеченный, вы можете продвигаться, создавая новые коммиты. Однако под refs/remotes/ это так называемые «ветви удаленного отслеживания» - эти ссылки просто указывают на фиксацию, которую удаленный репозиторий выполнял в последний раз, когда вы выполняли git fetch <name-of-remote> или успешное git push для соответствующая ветка в этом удаленном хранилище. (Я написал сообщение в блоге, в котором подробно рассказывается об этой разнице здесь .)

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