Могу ли я настроить git для более простого клонирования из GitHub? - PullRequest
1 голос
/ 01 июля 2019

Я бы хотел иметь возможность клонировать репозиторий из GitHub с чем-то вроде git clone user/repo вместо того, чтобы печатать весь URL. Можно ли настроить это в git, или я должен просто сделать для него отдельную команду?

Ответы [ 4 ]

4 голосов
/ 01 июля 2019

Если вы не против набрать еще несколько символов,

git config --global url."https://github.com/".insteadOf g://
git clone g://user/repo

g:// - просто поддельный протокол и будет заменен на https://github.com/.g:// означает здесь github, а часть g можно назвать другими словами.

Для конкретного пользователя, например, tom, вы даже можете использовать,

git config --global url."https://github.com/tom/".insteadOf t://
git clone t://repo

t://repo будет заменено на https://github.com/tom/repo.

4 голосов
/ 01 июля 2019

Возможно, вы ищете концентратор

Использование

$ hub clone rtomayko/tilt

# expands to:
$ git clone git://github.com/rtomayko/tilt.git
Концентратор

можно смело назвать псевдонимом git, чтобы вы могли набрать $ git <command> в оболочке и получить все обычные функции hub.

2 голосов
/ 01 июля 2019

Вы можете настроить псевдоним git следующим образом:

clone-github = "!f(){ repo=$1; shift; git clone \"https://github.com/$repo\" \"$@\"; }; f"

Затем использовать его как git clone-github user/repo Например:

$ git clone-github octocat/Spoon-Knife
Cloning into 'Spoon-Knife'...
remote: Enumerating objects: 16, done.
remote: Total 16 (delta 0), reused 0 (delta 0), pack-reused 16
Unpacking objects: 100% (16/16), done.
1 голос
/ 03 июля 2019

Вы можете использовать ярлыки SSH. Поместите в ~/.ssh/config следующее:

Host gh
  Hostname github.com
  User git
  Protocol 2

Теперь вы можете использовать следующее:

git clone gh:user/repo

# equivalent to:
git clone git@github.com:user/repo

Самое замечательное в этом решении то, что вы можете использовать его и для других провайдеров:

Host gl
  Hostname gitlab.mycompany.com
  User git
  Protocol 2

Тогда:

git clone gl:user/repo

# equivalent to:
git clone git@gitlab.mycompany.com:user/repo
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...