Как клонировать репозиторий Git в определенную папку?

выполнение команды git clone git@github.com:whatever создает каталог в моей текущей папке с именем whatever и сбрасывает содержимое репозитория Git в эту папку:

/httpdocs/whatever/public

моя проблема в том, что мне нужно, чтобы содержимое репозитория Git клонировалось в мой текущий каталог, чтобы они отображались в правильном месте для веб-сервера:

/httpdocs/public

Я знаю, как перемещать файлы после того, как я клонировал репозиторий, но это, похоже, сломает Git, и я хотел бы иметь возможность обновление просто позвонив git pull. Как я могу это сделать?

15 ответов


Вариант A:

git clone git@github.com:whatever folder-name

Вариант B:

переместить .папка git тоже.

еще лучше:

сохраните рабочую копию в другом месте и создайте символическую ссылку.


пример я думаю, что многие люди, задающие этот вопрос, после этого. Если вы на каталог, в который вы хотите сбросить содержимое репозитория git, запустите:

git clone git@github.com:whatever .

в "."в конце указывает текущую папку в качестве папки кассе.


заходим в папку.. Если папка пуста, то:

git clone git@github.com:whatever .

else

git init
git remote add origin PATH/TO/REPO
git fetch
git checkout -t origin/master

Базовое Клонирование Репозитория Git

вы клонируете репозиторий с

git clone [url]

например, если вы хотите клонировать Стэнфордский университет Drupal Open Framework git library под названием open_framework, вы можете сделать это так:

$ git clone git://github.com/SU-SWS/open_framework.git

который создает каталог с именем open_framework (в вашем текущем местоположении локальной файловой системы), инициализирует a .каталог git внутри него, вытаскивает все данные для этого репозитория и проверяет рабочую копию последней версия. Если вы войдете во вновь созданный каталог open_framework, вы увидите файлы проекта, готовые к работе или использованию.

клонирование репозитория в определенную локальную папку

если вы хотите клонировать репозиторий в каталог с именем, отличным от open_framework, вы можете указать это в качестве следующего параметра командной строки:

$ git clone git:github.com/SU-SWS/open_framework.git mynewtheme

эта команда делает то же самое, что и предыдущий, но целевой каталог называется майневтем.

Git имеет несколько различных протоколов передачи, которые вы можете использовать. В предыдущем примере используется протокол git://, но вы также можете увидеть http (S): / / или user@server:/path - ... git, который использует протокол передачи SSH.


когда вы перемещаете файлы туда, куда хотите, вы также перемещаете ? В зависимости от вашей ОС и конфигурации этот каталог может быть скрыт.

Он содержит РЕПО и вспомогательные файлы, в то время как файлы проекта, которые находятся в вашем /public каталог-это только версии в текущей фиксации check-out (основная ветвь по умолчанию).


клон:

git clone git@jittre.unfuddle.com:jittre/name.git

клонировать "отраслевые":

git clone -b [branch-name] git@jittre.unfuddle.com:jittre/name.git

Если вы хотите клонировать в текущую папку, вы должны попробовать это:

git clone https://github.com/example/example.git ./

убедитесь, что вы удалите .репозиторий Git, если вы пытаетесь проверить, что в текущем каталоге.

rm -rf .git затем git clone https://github.com/symfony/symfony-sandbox.git


чтобы клонировать репозиторий git в определенную папку, вы можете использовать ).


клонировать к Присутствует Рабочий Каталог:

git clone https://github.com/link.git

клонировать к Другое Каталог:

git clone https://github.com/link.git ./ Folder1 / Folder2

надеюсь, это поможет:)


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

git clone <repository>

клонируйте репозиторий, расположенный в , на локальный компьютер. Исходный репозиторий может быть расположен в локальной файловой системе или на удаленном компьютере, доступном через HTTP или SSH.

git clone <repo> <directory>

клонируйте репозиторий, расположенный в , в папку на локальном компьютере.

источник: настройка репозитория


вот как я бы это сделал, но я сделал псевдоним, чтобы сделать это для меня.

$ cd ~Downloads/git; git clone https:git.foo/poo.git

вероятно, есть более элегантный способ сделать это, однако я нашел, что это проще всего для себя.

вот псевдоним, который я создал, чтобы ускорить процесс. Я сделал его для zsh, но он должен отлично работать для bash или любой другой раковины, такой как рыба, xyzsh, fizsh и т. д.

редактировать ~/.zshrc, /.bashrc, etc. с вашим любимым редактором (мой-Leafpad, поэтому я бы написал $ leafpad ~/.zshrc).

мое личное предпочтение, однако, сделать плагин zsh, чтобы отслеживать все мои псевдонимы. Вы можете создать персональный плагин для oh-my-zsh, выполнив следующие команды:

$ cd ~/.oh-my-zsh/
$ cd plugins/
$ mkdir your-aliases-folder-name; cd your-aliases-folder-name
     # In my case '~/.oh-my-zsh/plugins/ev-aliases/ev-aliases'
$ leafpad your-zsh-aliases.plugin.zsh
     # Again, in my case 'ev-aliases.plugin.zsh'

после этого добавьте эти строки во вновь созданные пустые Алисы.файл плагина:

# Git aliases
alias gc="cd ~/Downloads/git; git clone "

(отсюда, замените свое имя на мое.)

затем, чтобы получить псевдонимы для работы, они (вместе с zsh) должны быть sourced-in (или что бы это ни было называемый.) Для этого внутри пользовательского документа плагина добавьте следующее:

## Ev's Aliases

#### Remember to re-source zsh after making any changes with these commands:

#### These commands should also work, assuming ev-aliases have already been sourced before:

allsource="source $ZSH/oh-my-zsh.sh ; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh; clear"
sourceall="source $ZSH/oh-my-zsh.sh ; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh"
#### 

####################################

# git aliases

alias gc="cd ~/Downloads/git; git clone "
# alias gc="git clone "
# alias gc="cd /your/git/folder/or/whatever; git clone "

####################################

сохраните плагин oh-my-zsh и запустите allsource. Если это не работает, просто запустите source $ZSH/oh-my-zsh.sh; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh. Это загрузит источник плагина, который позволит вам использовать allsource отныне.


я в процессе создания репозитория Git со всеми моими псевдонимами. Пожалуйста, не стесняйтесь проверить их здесь: точка-файлы Ev. Пожалуйста, не стесняйтесь вилять и улучшать их, чтобы одеть ваши потребности.


предположим, вы хотите в папке, как /stuff, но ваш pull создает каталог под /repo/tokens/.

вы можете сделать:

mkdir /stuff
ln -s /repo/tokens /stuff

вот именно. Вы закончили.


если вы используете ssh на git cloning вы можете использовать следующую команду.

git -C path clone git@github.com:path_to_repo.git

например: git -C /home/ubuntu/ clone git@github.com:kennethreitz/requests.git потянет репозиторий git для requests на /home/ubuntu/ путь.


относительно этой строки из исходного сообщения:

" Я знаю, как перемещать файлы после клонирования РЕПО, Но это кажется, сломать git"

Я могу это сделать, и я не вижу никаких проблем до сих пор с моими операциями добавления, фиксации, нажатия, вытягивания.

этот подход изложен выше, но просто не разбит на шаги. Вот шаги, которые работают для меня:

  1. клонировать РЕПО в любой свежий временный папка
  2. cd в эту корневую папку, которую вы только что клонировали локально
  3. скопируйте все содержимое папки, включая /.git directory-в любую существующую папку, которая вам нравится; (скажем, проект eclipse, который вы хотите объединить с вашим РЕПО)

существующая папка, в которую вы только что скопировали файлы , теперь готова к взаимодействию с git.