Пробовали ли вы использовать git log -n 1, когда проверяли эту конкретную ветку?
Рик ван Бодегравен
git log дает хэш локальных репозиториев, но репозиторий git hub имеет новый хеш.
mbdvg
1
git log -n 1 [branch_name]branch_name (может быть удаленной или локальной веткой) необязательно. Без имени ветки будет отображаться последняя фиксация текущей ветки.
Примечание: это не обязательно должен быть git://URL. Это могло быть https://или git@github.com:тоже.
Первоначально это было направлено на обнаружение последней фиксации удаленной ветки (не только из вашей последней выборки, но и фактической последней фиксации в ветке в удаленном репозитории). Если вам нужен хеш фиксации для чего-то локально, лучший ответ:
git rev-parse branch-name
Это быстро, легко и с помощью одной команды. Если вам нужен хеш фиксации для текущей ветки, вы можете посмотреть HEAD:
Заслуживает большей любви. Это прекрасно работает.
SuperFamousGuy
git rev-parse my_branch_nameИЛИ git log -n 1 my_branch_name | grep commit | awk '{ print $2 }'более простой ответ; выведет только последний хэш фиксацииmy_branch_name
betoharres
@betoharres, OP изначально пытался определить фиксацию в удаленном репозитории (не то, что у нас есть refs/remotes, а фактическое удаленное репо). git rev-parse branch-nameопределенно способ пойти в местный филиал.
John Szakmeister
Это работает только в поле, git svnпотому что git svn fetchизменяет git logвывод и поэтому git logбольше не может использоваться для получения хэша последней удаленной фиксации репозитория git.
Andry
@Andry Я не понимаю, что вы имеете в виду ... У меня проблемы с отслеживанием вашего комментария. Вы можете объяснить больше?
Джон Закмейстер
142
git log -n 1 [branch_name]
branch_name(может быть удаленным или локальным филиалом) не является обязательным. Без branch_nameнего будет отображаться последняя фиксация в текущей ветке.
Например:
git log -n 1
git log -n 1 origin/master
git log -n 1 some_local_branch
git log -n 1 --pretty=format:"%H" #To get only hash value of commit
Хорошо, я добавил это в свой .gitconfig, чтобы я мог просто скопировать последнюю фиксацию с помощью " git hash | pbcopy clip ` [alias] hash = "! F () {\ git log -n 1 --pretty = format:"% H "; \}; f "` ``
Штаны
2
Попробуйте использовать git log -n 1после выполнения git checkout branchname. Это показывает хеш фиксации, автора, дату и сообщение фиксации для последней фиксации.
Выполните git pull origin/branchnameсначала, чтобы убедиться, что ваше локальное репо соответствует восходящему потоку.
Если, возможно, вы хотели бы видеть только список коммитов, которые ваша локальная ветка находится за удаленной веткой, сделайте следующее:
Мое требование - проверить, совпадают ли хэши фиксации локальных репозиториев и репозиториев github или нет, как мы можем это сделать?
mbdvg
Насколько мне известно, хэши коммитов не могут отличаться между вашим локальным и удаленным репо для одних и тех же коммитов. Возможно, вы имели в виду, что список коммитов отсутствует в вашем локальном репозитории, а не в удаленном?
Рик ван Бодегравен
Да, Рик Ван, есть несоответствие, поэтому я хочу показать, что есть разница в локальном репозитории и репозитории github, поэтому нужен способ узнать
репозитории и репозитории на
2
вы можете git fetch nameofremoterepo, тоgit log
и лично я псевдоним gitlogдля git log --graph --oneline --pretty --decorate --all. попробуйте и посмотрите, подходит ли он вам
--onlineэто сокращение от --pretty=oneline --abbrev-commit. Но вы тоже используете --pretty, который возвращается --pretty=oneline... Я бы рекомендовал git log --graph --abbrev-commit --decorate --allвместо этого.
Феликс Клинг,
Круто. Я этого не заметил. Благодаря!
nglinh
0
В вашем комментарии
Я хочу показать, что есть разница в локальном и github репозитории
Как уже упоминалось в другом ответе, вы должны сделать git fetch originсначала. Затем, если пульт находится впереди вашей текущей ветки, вы можете перечислить все коммиты между вашей локальной веткой и удаленным с помощью
git log master..origin/master --stat
Если ваше местное отделение впереди:
git log origin/master..master --stat
--stat показывает также список измененных файлов.
Если вы хотите явно перечислить добавления и удаления, используйте git diff:
Обратите внимание, что при использовании параметра «git log -n 1 [имя_ ветки]». -n возвращает только одну строку журнала, но порядок, в котором она возвращается, не гарантируется. Ниже приводится выдержка из справочной страницы git-log.
.....
.....
Commit Limiting
Besides specifying a range of commits that should be listed using the special notations explained in the description, additional commit limiting may be applied.
Using more options generally further limits the output (e.g. --since=<date1> limits to commits newer than <date1>, and using it with --grep=<pattern> further limits to commits whose log message has a line that matches <pattern>), unless otherwise noted.
Note that these are applied before commit ordering and formatting options, such as --reverse.
-<number>
-n <number>
.....
.....
git log -n 1 [branch_name]
branch_name (может быть удаленной или локальной веткой) необязательно. Без имени ветки будет отображаться последняя фиксация текущей ветки.Ответы:
Используйте
git ls-remote git://github.com/<user>/<project>.git
. Например, мой проект trac-backlog дает:Просто наберите тот, который вам нужен, и вырежьте его:
Или вы можете указать, какие ссылки вы хотите в командной строке, и избежать grep с помощью:
Примечание: это не обязательно должен быть
git://
URL. Это могло бытьhttps://
илиgit@github.com:
тоже.Первоначально это было направлено на обнаружение последней фиксации удаленной ветки (не только из вашей последней выборки, но и фактической последней фиксации в ветке в удаленном репозитории). Если вам нужен хеш фиксации для чего-то локально, лучший ответ:
Это быстро, легко и с помощью одной команды. Если вам нужен хеш фиксации для текущей ветки, вы можете посмотреть HEAD:
источник
git rev-parse my_branch_name
ИЛИgit log -n 1 my_branch_name | grep commit | awk '{ print $2 }'
более простой ответ; выведет только последний хэш фиксацииmy_branch_name
refs/remotes
, а фактическое удаленное репо).git rev-parse branch-name
определенно способ пойти в местный филиал.git svn
потому чтоgit svn fetch
изменяетgit log
вывод и поэтомуgit log
больше не может использоваться для получения хэша последней удаленной фиксации репозитория git.branch_name
(может быть удаленным или локальным филиалом) не является обязательным. Безbranch_name
него будет отображаться последняя фиксация в текущей ветке.Например:
источник
git hash | pbcopy clip
` [alias] hash = "! F () {\ git log -n 1 --pretty = format:"% H "; \}; f "` ``Попробуйте использовать
git log -n 1
после выполненияgit checkout branchname
. Это показывает хеш фиксации, автора, дату и сообщение фиксации для последней фиксации.Выполните
git pull origin/branchname
сначала, чтобы убедиться, что ваше локальное репо соответствует восходящему потоку.Если, возможно, вы хотели бы видеть только список коммитов, которые ваша локальная ветка находится за удаленной веткой, сделайте следующее:
Здесь будут перечислены все хэши коммитов, которые вы еще не слили в свою локальную ветку.
источник
вы можете
git fetch nameofremoterepo
, тоgit log
и лично я псевдоним
gitlog
дляgit log --graph --oneline --pretty --decorate --all
. попробуйте и посмотрите, подходит ли он вамисточник
--online
это сокращение от--pretty=oneline --abbrev-commit
. Но вы тоже используете--pretty
, который возвращается--pretty=oneline
... Я бы рекомендовалgit log --graph --abbrev-commit --decorate --all
вместо этого.В вашем комментарии
Как уже упоминалось в другом ответе, вы должны сделать
git fetch origin
сначала. Затем, если пульт находится впереди вашей текущей ветки, вы можете перечислить все коммиты между вашей локальной веткой и удаленным с помощьюЕсли ваше местное отделение впереди:
--stat
показывает также список измененных файлов.Если вы хотите явно перечислить добавления и удаления, используйте
git diff
:источник
Обратите внимание, что при использовании параметра «git log -n 1 [имя_ ветки]». -n возвращает только одну строку журнала, но порядок, в котором она возвращается, не гарантируется. Ниже приводится выдержка из справочной страницы git-log.
источник