Я вытащил проект из GitHub несколько дней назад. С тех пор я обнаружил, что на GitHub есть несколько вилок, и я забыл отметить, какой из них я взял изначально. Как я могу определить, какие из тех вилок я вытащил?
git
github
git-remote
Тим
источник
источник
git remote get-url origin
будет возможно. Смотрите мой ответ нижеgit remote get-url origin
у меня не работает - возможно, не рекомендуется?git remote show origin
работал хотя.git remote -v
дать вам много информации, в том числе это.git remote get-url origin --push
работает нормально, очевидно, не обесценивается и предоставляет хорошую краткую информацию (git remote show origin
может быть очень многословной) qvgit help remote
.Ответы:
Если вам нужен только удаленный URL-адрес или вы не подключены к сети, которая может достичь удаленного репо:
Если вам требуется полный вывод, и вы находитесь в сети, которая может достичь удаленного репо, где находится источник:
При использовании
git clone
(из GitHub или любого другого репозитория исходного кода) именем по умолчанию для источника клона является «origin». Используяgit remote show
отобразит информацию об этом удаленном имени. Первые несколько строк должны показать:Если вы хотите использовать значение в сценарии, вы должны использовать первую команду, указанную в этом ответе.
источник
git remote show origin
(опционально с флагом -n, предоставленным @ Кейси), или сgit remote -v
предложением @Montaro и @rodel..gitconfig
файла будет это, но я не видел это в моем.´~/.gitconfig
является глобальным для всехgit
репозиториев, здесь это происходит из локальной конфигурации, которая обычно находится.git/config
(однако для git-подмодулей ответ немного сложнее). Обратите внимание, чтоstrace git config --get remote.origin.url
это ваш друг.Если вы хотите использовать это в сценариях, вы можете получить только URL с
источник
git remote show origin
просто показывает «conq: repository not Существует.»).url.<base>.insteadOf
. Смотрите мой ответ - у git есть команда для этой цели.Ты можешь попробовать:
Он напечатает URL-адреса всех извлеченных / отправленных пультов.
источник
Чтобы получить ответ:
Это лучше, чем читать конфигурацию; обратитесь к странице справочника для
git-ls-remote
:Как отмечает @Jefromi, эта опция была добавлена в v1.7.5 и не документирована до v1.7.12.2 (2012-09).
источник
origin
.remote get-url
варианта. Это замена замены.С Git 2.7 (выпуск 5 января 2015 г.) у вас есть более согласованное решение, использующее
git remote
:(милая подвеска
git remote set-url origin <newurl>
)Смотрите коммит 96f78d3 (16 сентября 2015 г.) Бена Беккеля (
mathstuf
) .(Слиты Junio C Hamano -
gitster
- в фиксации e437cbd , 5 октября 2015) :До git 2.7 у вас было:
источник
Подводя итог, можно выделить как минимум четыре способа:
(Следующее было опробовано для официального репозитория Linux)
Наименее информация:
а также
Больше информации:
Еще больше информации:
источник
git config --get remote.origin.url
возвращает исходный URL-адрес, который был установлен с помощьюgit remote add ...
илиgit remote set-url ...
во времяgit ls-remote --get-url origin
получения URL-адреса, который фактически используется для доступа к удаленному устройству - который может отличаться при наличииgit config --global url.XXX.insteadOf YYY
. Так что оба выхода могут отличаться! Также обратите внимание, чтоgit ls-remote --get-url
(безorigin
) не обязательно извлекаетorigin
, вместо этого он показывает отслеженный восходящий поток, поэтому он потерпит неудачу, например, в отключенном состоянии HEAD.Я думаю, что вы можете найти его,
.git/config
иremote["origin"]
если вы не манипулировали этим.источник
Короткий ответ:
или альтернатива для простых быстрых сценариев:
Некоторая информация:
$ git remote -v
будет печатать все пульты (не то, что вы хотите). Вы хотите происхождение правильно?$ git remote show origin
намного лучше, показывает только,origin
но занимает слишком много времени (проверено на git версии 1.8.1.msysgit.1).Я закончил с:,
$ git remote show -n origin
который, кажется, самый быстрый. С-n
него не будут извлекать удаленные головки (ветви АКА). Вам не нужна такая информация, верно?http://www.kernel.org/pub//software/scm/git/docs/git-remote.html
Вы можете обратиться
| grep -i fetch
ко всем трем версиям, чтобы отобразить только URL для получения.Если вам нужна чистая скорость, используйте:
Спасибо @Jefromi за указание на это.
источник
Для меня это более простой способ (меньше печатать):
на самом деле, у меня есть то, что
alias
называетсяs
:Вы можете добавить в свой профиль с помощью:
alias s='git remote -v && git status'
источник
Я никогда не могу вспомнить все параметры команд Git, поэтому я просто добавляю псевдоним в
~/.gitconfig
файл, который имеет больше смысла для меня, чтобы я мог его запомнить, и это приводит к меньшему количеству ввода:После перезагрузки терминала вы можете просто набрать:
Вот еще несколько моих часто используемых:
Я также настоятельно рекомендую git-extras, которая имеет
git info
команду, которая предоставляет гораздо более подробную информацию об удаленных и локальных ветвях.источник
URL Git будет внутри конфигурационного файла Git. Значение соответствует ключу
url
.Для Mac и Linux используйте команды ниже:
Для Windows откройте файл ниже в любом текстовом редакторе и найдите значение для ключа
url
.Примечание: это будет работать, даже если вы находитесь в автономном режиме или удаленный git-сервер отключен.
источник
git remote get-url origin >> fatal: No such remote 'origin'
,git config --get remote.origin.url >>
Я в основном использую:
Он работает для командной консоли Git Bash или командной консоли CMD в Windows. Тем не менее, он работает с версией 2.x Git.
источник
Эта команда выдаст всю информацию, связанную с вашим хранилищем.
источник
Пульт ДУ восходящего потока не может называться «источником», так что вот вариант:
Или:
Для более полезных переменных есть:
источник
Чтобы получить IP-адрес / имя хоста
origin
Для
ssh://
репозиториев:Для
git://
репозиториев:источник
ssh
этого работает только при отсутствии~/.ssh/config
которого переписывает имя хоста или псевдоним.В дополнение к другим ответам: Если пульт дистанционного управления по какой-то причине был изменен и поэтому не отражает исходное происхождение, самая первая запись в журнале операций (т. Е. Последняя запись, отображаемая командой
git reflog
) должна указывать, где хранилище было первоначально клонировано. от.например
(Имейте в виду, что reflog может быть очищен, так что это не гарантируется).
источник
С
git remote show origin
вами должно быть в каталоге проектов. Но если вы хотите определить URL-адреса откуда угодно, вы можете использовать:Если вам часто понадобится эта команда, вы можете определить псевдоним в вашем MacOS
.bashrc
или в.bash_profile
MacOS.Так что вам просто нужно позвонить
giturl
в корневую папку Git, чтобы просто получить ее URL.Если вы расширите этот псевдоним, как это
вы получаете только простой URL без предшествующего
в
вы получаете больше возможностей в его использовании:
пример
На Mac вы можете позвонить,
open $(giturl)
чтобы открыть URL в стандартном браузере.Или
chrome $(giturl)
открыть его с помощью браузера Chrome в Linux.источник
Простой способ - открыть
.git/config
файл:Редактировать:
vim .git/config
илиnano .git/config
источник
Распечатать произвольно названные URL удаленной загрузки:
источник
Если вы не знаете имя вышестоящего пульта для ветви, вы можете сначала найти его, проверив имя вышестоящей ветви, на котором построена текущая ветка. Используйте
git rev-parse
как это:Это показывает, что восходящая ветвь, которая была источником для текущей ветки. Это может быть проанализировано, чтобы получить удаленное имя как это:
Теперь возьмите это и передайте по конвейеру,
git ls-remote
и вы получите URL-адрес удаленного вышестоящего узла, являющегося источником текущей ветви:Теперь следует отметить, что это не обязательно то же самое, что исходный удаленный репозиторий, из которого был клонирован. Однако во многих случаях этого будет достаточно.
источник
Применение:
Вывод:
источник
Я предпочитаю этот, так как его легче запомнить:
Он перечислит всю полезную информацию, такую как:
источник
легко просто используйте эту команду, где вы поместили папку .git
git config --get remote.origin.url
если вы подключены к сети
git remote show origin
он покажет вам URL, с которого изначально был клонирован локальный репозиторий Git.
надеюсь, это поможет
источник