Питання Як ви клонувати сховище Git у певну папку?


Виконання команди git clone git@github.com:whatever створює каталог у моїй поточній папці з назвою whatever і скидає вміст сховища Git до цієї папки:

/httpdocs/whatever/public

Моя проблема полягає в тому, що мені потрібен вміст сховища Git, клонований у моєму поточному каталозі, щоб вони відображалися в належному місці для веб-сервера:

/httpdocs/public

Я знаю, як перенести файли після того, як я клонував сховище, але це, здається, зламає Gіt, і я хотів би оновити його, просто зателефонувавши git pull. Як це зробити?


1718
2018-03-16 15:56


походження


У Windows ви можете переміщати файли з папки, де ви будете клонувати repo [якщо такий є], тож це буде порожньо, коли ви робите гіт-клон. Після клонування перемістіть ваші файли назад [ctrl-z] і хтола! Якщо поточна папка порожня просто використовуйте: git клон giturl .


Відповіді:


Варіант A:

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

Варіант B:

Перемістіть .git папку теж.

Ще краще:

Тримайте свою робочу копію в іншому місці та створіть символічну посилання.


2413
2018-03-16 16:08



Я не думав про ваш варіант "Краще ще", і мені це подобається, хоча я не впевнений, чому. Які переваги цього? - David Smith
Напевно, це не дає жодних переваг прямо зараз, але це може заощадити вам багато проблем, якщо ви вирішите перемістити речі протягом деякого дня. - Can Berk Güder
Крім того, ви можете швидко переключатися між випусками за допомогою параметра "Краще ще". Це особливо корисно і використовується для серверів. - Halil Özgür
@MEM Я думаю, що він означає створити символічне посилання на .git i.e. ln -s path/to/.git path/to/working/directory - Alexander
Чи може хто-небудь пояснити переваги цього ?? Я сьогодні трохи щільний. Як використовувати сервери вигідності для символічного посилання? - triple


На прикладі, я думаю, що багато людей, які задають це питання після цього, це так. Якщо ви в каталог, в який ви хочете вміст сховища git, скинутий до, запустіть:

git clone git@github.com:whatever .

"." в кінці визначає поточну папку як папку перевірки.


512
2018-02-25 17:15



Якщо цей каталог не порожній, це не спрацьовує. - Charlie Flowers
правда, так що ви не хочете запускати "git init" в цій папці, перш ніж клонувати його. Але якщо ви зробили це, то видалення папки .git перед клонуванням зробить трюк. - Magne
Виправлено для порожніх каталогів у моїй відповіді - csomakk
не міг отримати цю роботу в nitrous.io? навіть після випорожнення він говорить, що каталог не порожній - Tejas Manohar
@TejasManohar Переконайтеся, що ви також видалили приховані файли. - Britic


Перейдіть до папки .. Якщо папка порожня, то:

git clone git@github.com:whatever .

інакше

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

176
2017-12-12 08:43



Насправді це була найбільш корисна відповідь для мене, коли мені просто потрібно було натиснути вже створений проект на щойно створений сховище. Кудос! - wirher
Тільки відповідь, яка вказує, як зарахувати в непусту папку, спасибі. - Preston Badeer
Це дійсно корисно, як switch -t на чітко не показано в документації до виїзний квиток. - Chetabahana
що робить перемикач -t? Я отримую повідомлення про перерву зі списком не відстежуваних файлів, які будуть перезаписані під час перевірки? Що робити в цій ситуації? Я не хочу, щоб ці файли були перезаписані? - Momin Zahid
-t документація від git: -t, --track При створенні нової гілки встановіть конфігурацію "upstream". Див. "--Track" в git-branch (1) для деталей. - csomakk


Основне клонування сховища Git

Ви клонуватимете репозиторій

git clone [url]

Наприклад, якщо ви хочете клонувати бібліотеку Drupal Open Framework Git зі Стенфордським університетом під назвою open_framework, це можна зробити так:

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

Це створює каталог з ім'ям open_framework (у вашій локальній локальній файловій системі), ініціалізує в ньому каталог .git, знімає всі дані для цього сховища та перевіряє робочу копію останньої версії. Якщо ви перейдете до щойно створеного каталогу open_framework, ви побачите там файли проекту, готові працювати або використовувати.

Клонування сховища в конкретній локальній папці

Якщо ви хочете клонувати сховище в директорію з ім'ям щось інше, ніж open_framework, ви можете вказати це як наступну опцію командного рядка:

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

Ця команда робить те ж саме, що й попереднє, але цільова директорія називається mynewtheme.

Gіt має ряд різних протоколів передачі, які ви можете використовувати. У попередньому прикладі використовується протокол git: //, але ви також можете побачити http (s): // або user @ сервер: /path.git, який використовує протокол передачі SSH.


70
2018-04-23 21:27



це автоматично створить папку у вашій поточній папці та покладе там файли. Таким чином, вам не потрібно турбуватися про перезапис будь-якої іншої папки. - arn-arn
Працює в реальному часі в Git в 2018 році на Windows Git Bash. - Eric Hepperle - CodeSlayer2010


Коли ви переміщуєте файли туди, де ви хочете їх, ви також рухаєтеся .git каталог? Залежно від вашої ОС та конфігурації, цей каталог може бути прихованим.

Він містить репо та підтримувані файли, а файли проекту - у вашому /public Каталог - це лише версії в поточній фіксації відправлення (основна гілка за умовчанням).


12
2018-03-16 16:14





Клон:

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

Клонувати "конкретну гілку":

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

11
2018-04-04 06:46





Якщо ви хочете клонувати в поточну папку, спробуйте це:

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

11
2017-09-11 00:59



фатальний: шлях призначення "." вже існує і не пустий каталог. - Cleiton


Переконайтеся, що ви видалите сховище .git, якщо ви намагаєтесь перевірити речі в поточному каталозі.

rm -rf .git потім git clone https://github.com/symfony/symfony-sandbox.git


9
2018-02-25 22:17





Щоб клонувати сховище git у певну папку, ви можете використовувати -C <path> параметр, наприклад

git -C /httpdocs clone git@github.com:whatever

Хоча це все одно створить a whatever На верхній частині папки, щоб клонувати вміст сховища в поточному каталозі, використовуйте такий синтаксис:

git git@github.com:whatever .

Зауважте, що клонування в існуючому каталозі є тільки допускається, коли є каталог порожній.

Оскільки ви клонуватимете папку, доступну для всіх, розгляньте розділ сховища Git з робочого дерева за допомогою --separate-git-dir=<git dir> або виключити .git папку у вашій конфігурації веб-сервера (наприклад, в .htaccess файл)


9
2018-01-08 20:04





Щоб клонувати до Наявний робочий каталог:

гіт-клон https://github.com/link.git 

Щоб клонувати до Інший каталог:

гіт-клон https://github.com/link.git ./Folder1/Folder2

Сподіваюся, це допоможе :)


8
2018-03-21 16:03





Використання

git clone <repository>

Клонувати сховище, розташоване в <repository> на локальну машину. Початковий репозиторій може бути розташований на локальній файловій системі або на віддаленій машині, доступній через HTTP або SSH.

git clone <repo> <directory>

Клонувати сховище, розташоване в <repository> у папку <directory> на локальній машині.

Джерело: Налаштування сховища


7
2018-06-26 11:42