Как я могу "git log" только код, опубликованный в транке? - PullRequest
5 голосов
/ 01 апреля 2010

На моем рабочем месте у нас есть "основная" ветвь, которая представляет опубликованный код. Чтобы внести изменения, я извлекаю рабочую копию, создаю ветку темы, фиксирую ветку темы, объединяю ветку темы в master и нажимаю.

Для небольших изменений я мог бы зафиксировать непосредственно мастер, а затем нажать.

Моя проблема в том, что когда я использую "git log", мне не нужны мои ветки тем в моей локальной рабочей копии. Я только хочу увидеть изменения в основной ветке на удаленном, совместно используемом git-сервере. Более того, если я использую --stat или -p или одного из их друзей, я хочу видеть файлы и изменения, связанные с коммитом слияния с мастером, не связанные с их исходными коммитами ветвления (которые, как я уже сказал, я не вообще не хочу видеть).

Как мне это сделать?

Ответы [ 3 ]

3 голосов
/ 09 апреля 2010

Это должно сработать:

git log origin/master

Вы можете сначала выполнить git fetch, чтобы снять все новые коммиты с удаленного конца (это не объединит их с вашими локальными ветвями).

1 голос
/ 02 апреля 2010

Звучит так, будто вы действительно хотите diff, а не log, так как это звучит так, как будто вы хотите получить один большой список --stat или -p, вместо того, чтобы разбивать его на коммит, в котором он изначально произошел.

git diff [--stat] origin/master...master

Это покажет вам разницу между тем, что имеет ваша основная ветвь (после слияния в вашей ветке тем) по сравнению с базой слияния между origin / master и master. Здесь важно использовать «...» вместо «..».

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

git diff [--stat] origin/master...
0 голосов
/ 07 мая 2011

Вы можете запустить git log --graph --oneline, который проясняет, какие коммиты находятся в текущей ветке (хотя это не исключает те, которые отсутствуют в списке).

Если вы используете git-svn, git log --grep git-svn-id будет показывать только коммиты с git-svn-id в сообщении журнала (которое добавляется git, когда коммит передается в svn).

...