Як вы клонируете рэпазітар Git ў пэўную тэчку?

Выкананне каманды git clone git@github.com:whatever стварае каталог у маёй бягучай тэчцы з імем any і адкідвае змесціва рэпазітара Git у гэтую тэчку:

 /httpdocs/whatever/public 

Мая праблема ў тым, што мне трэба змесціва рэпазітара Git, кланаванага ў мой бягучы каталог, каб яны адлюстроўваліся ў правільным месцы для вэб-сервера:

 /httpdocs/public 

Я ведаю, як перамяшчаць файлы пасля таго, як я кланаваных рэпазітар, але гэта, здаецца, зламала Git, і я хацеў бы мець магчымасць абнаўляць, проста патэлефанаваўшы git pull . Як я магу гэта зрабіць?

1840
16 марта '09 в 18:56 2009-03-16 18:56 зададзены David Smith 16 сакавіка '09 у 18:56 2009-03-16 18:56
@ 17 адказаў

Варыянт A:

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

Варыянт B:

перамесціце таксама тэчку .git.

Яшчэ лепш:

Захавайце сваю рабочую копію ў іншым месцы і стварыце сімвалічную спасылку.

2614
16 марта '09 в 19:08 2009-03-16 19:08 адказ дадзены Can Berk Güder 16 сакавіка '09 у 19:08 2009-03-16 19:08

У гэтым прыкладзе я думаю, што многія людзі задаюць гэтае пытанне пасля гэтага. Калі вы знаходзіцеся ў каталогу, у якім вы хочаце загрузіць змесціва рэпазітара git, запусціце:

 git clone git@github.com:whatever . 
border=0

"." у канцы паказвае бягучую тэчку ў якасці тэчкі праверкі.

540
25 февр. адказ дадзены J Wynia 25 февр. 2010-02-25 20:15 '10 у 20:15 2010-02-25 20:15

Зайдзіце ў тэчку. Калі тэчка пустая, то:

 git clone git@github.com:whatever . 

яшчэ

 git init git remote add origin PATH/TO/REPO git fetch git checkout -t origin/master 
190
12 дек. адказ дадзены csomakk 12 снеж. 2013-12-12 11:43 '13 у 11:43 2013/12/12 11:43

Базавую кланаванне рэпазітара Git

Вы клонируете рэпазітар з

 git clone [url] 

Напрыклад, калі вы хочаце кланаваць бібліятэку Git Drupal Open Framework Стэнфардскага універсітэта пад назвай 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.

Git мае некалькі розных пратаколаў перадачы, якія вы можаце выкарыстоўваць. У папярэднім прыкладзе выкарыстоўваецца пратакол git: //, але вы таксама можаце ўбачыць http (s): // або user @server: /path.git, які выкарыстоўвае пратакол перадачы SSH.

76
24 апр. адказ дадзены Craig Gjerdingen 24 крас. 2013-04-24 00:27 '13 у 0:27 2013/04/24 00:27

Калі вы перасоўвае файлы туды, дзе вы хочаце, перасоўвае Ці вы каталог .git ? У залежнасці ад вашай АС і канфігурацыі гэты каталог можа быць скрыты.

Ён змяшчае РЭПО і падтрымліваюць файлы, у той час як файлы праекта, якія знаходзяцца ў вашым каталогу /public , з'яўляюцца толькі версіямі ў бягучай фіксацыі выпіскі (асноўная галінка па змаўчанні).

13
16 марта '09 в 19:14 2009-03-16 19:14 адказ дадзены Paul 16 сакавіка '09 у 19:14 2009-03-16 19:14

клон:

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

Кланаваць "канкрэтную галіну":

 git clone -b [branch-name] git@jittre.unfuddle.com:jittre/name.git 
13
04 апр. адказ дадзены Selvamani 04 крас. 2013-04-04 09:46 '13 у 09:46 2013/04/04 09:46

Калі вы хочаце кланаваць ў бягучую тэчку, вы павінны паспрабаваць наступнае:

 git clone https://github.com/example/example.git ./ 
11
11 сент. адказ дадзены Luis 11 сент. 2016-09-11 03:59 '16 у 3:59 2016/09/11 03:59

Каб кланаваць ў бягучы працоўны каталог:

Clone GIT https://github.com/link.git

Каб кланаваць ў іншы каталог:

Clone GIT https://github.com/link.git ./Folder1/Folder2

Спадзяюся, дапаможа :)

10
21 марта '17 в 19:03 2017-03-21 19:03 адказ дадзены Sarat Chandra 21 сакавіка '17 у 19:03 2017/03/21 19:03

Пераканайцеся, што вы выдаліце ​​рэпазітар .git, калі вы спрабуеце праверыць прадмет у бягучым каталогу.

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

9
26 февр. адказ дадзены alex 26 февр. 2011-02-26 01:17 '11 у 01:17 2011-02-26 01:17

Каб кланаваць рэпазітар git ў пэўную тэчку, вы можаце выкарыстоўваць параметр -C <path> , напрыклад.

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

Хоць ён усё роўна будзе ствараць замест яго тэчку whatever , таму для кланавання змесціва рэпазітара ў бягучы каталог выкарыстоўвайце наступны сінтаксіс:

 git git@github.com:whatever . 

Звярніце ўвагу, што кланаванне ў існуючы каталог дазволена толькі, калі каталог пусты.

Паколькі вы клонируете ў тэчку, даступную для публікі, падумайце аб тым, каб аддзяліць ваш рэпазітар git ад працоўнага дрэва, выкарыстоўваючы тэчку --separate-git-dir=<git dir> або Exclude .git ў канфігурацыі вашага вэб-сервера (напрыклад, у файле .htaccess ).

9
08 янв. адказ дадзены kenorb 08 студз. 2017-01-08 23:04 '17 а 23:04 2017/01/08 23:04

выкарыстанне

 git clone <repository> 

Клануецца сховішча, размешчанае ў <сховішча>, на лакальны кампутар. Зыходны рэпазітар можа знаходзіцца ў лакальнай файлавай сістэме або на выдаленым кампутары, даступным праз HTTP ці SSH.

 git clone <repo> <directory> 

Клануецца рэпазітар, размешчаны ў <repository>, у тэчку з імем <directory> на лакальным кампутары.

Крыніца: Налада сховішчы

7
26 июня '15 в 14:42 2015-06-26 14:42 адказ дадзены Nagarjun 26 чэрвеня '15 у 14:42 2015/06/26 14:42

Вось як бы я гэта зрабіў, але я зрабіў псеўданім, каб зрабіць гэта для мяне.

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

Магчыма, гэта больш элегантны спосаб зрабіць гэта, аднак я знайшоў, што гэта прасцей для мяне.

Тут псеўданім, які я стварыў, каб паскорыць працу. Я зрабіў гэта для zsh, але ён павінен выдатна працаваць для bash або любы іншы абалонкі, такі як рыба, xyzsh, fizsh і г.д.

Зменіце ~/.zshrc , /.bashrc і г.д. з вашым любімым рэдактарам (мой - 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' 

Затым дадайце гэтыя радкі ў новы створаны пусты файл alises.plugin:

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

(Адсюль заменіце сваё імя маім.)

Затым, каб прымусіць псеўданімы працаваць, яны (разам з zsh) павінны быць адпраўлены (ці што б там ні звалася). Для гэтага ўнутры вашага карыстацкага дакумента плагіна дадайце наступнае:

 ## Ev 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 " #################################### commands ## Ev 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 source $ZSH/oh-my-zsh.sh; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh . Гэта загрузіць крыніца плагіна, які дазволіць вам выкарыстоўваць allsource з гэтага моманту.


Я ствараю рэпазітар Git з усімі маімі псеўданімамі. Калі ласка, не саромейцеся праверыць іх тут: Ev dot-files . Калі ласка, не саромейцеся развіваць і паляпшаць іх у адпаведнасці з вашымі патрэбамі.

3
28 февр. адказ дадзены Ev- 28 февр. 2016-02-28 07:46 '16 у 7:46 2016/02/28 07:46

Калі вы выкарыстоўваеце 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/ .

1
27 марта '17 в 10:36 2017-03-27 10:36 адказ дадзены Ankit Singh 27 сакавіка '17 у 10:36 2017/03/27 10:36
 For Windows user 1> Open command prompt. 2> Change the directory to destination folder (Where you want to store your project in local machine.) 3> Now go to project setting online(From where you want to clone) 4> Click on clone, and copy the clone command. 5> Now enter the same on cmd . It will start cloning saving on the selected folder you given . local machine For Windows user 1> Open command prompt. 2> Change the directory to destination folder (Where you want to store your project in local machine.) 3> Now go to project setting online(From where you want to clone) 4> Click on clone, and copy the clone command. 5> Now enter the same on cmd . It will start cloning saving on the selected folder you given . 
0
24 окт. адказ дадзены Tarit Ray 24 каст. 2018-10-24 16:25 '18 у 16:25 2018/10/24 16:25

Па нейкай прычыне гэты сінтаксіс не вылучаецца:

git clone repo-url [folder]

Тут папка - неабавязковы шлях да лакальнай тэчцы (якая будзе лакальным сховішчам).

Git clone таксама pull код з аддаленага рэпазітара ў лакальны рэпазітар. На самай справе гэта праўда:

 git clone repo-url = git init + git remote add origin repo-url + git pull 
0
30 янв. адказ дадзены prosti 30 студз. 2019-01-30 19:04 '19 у 19:04 2019/01/30 19:04

Выкажам здагадку, што вы хочаце ў тэчцы тыпу /stuff , але ваш pull стварае каталог пад /repo/tokens/ .

Вы можаце зрабіць:

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

Што гэта. Вы скончылі.

-1
01 апр. адказ дадзены pacifi30 01 крас. 2012-04-01 04:09 '12 у 04:09 2012-04-01 04:09

Адносна гэтага радка з зыходнага паведамлення:

"Я ведаю, як перамяшчаць файлы пасля таго, як я кланаваных РЭПО, але гэта здаецца, парушае git"

Я магу гэта зрабіць, і да гэтага часу не бачу ніякіх праблем з маімі аперацыямі add, commit, push, pull.

Гэты падыход выкладзены вышэй, але проста не пабіты на этапы. Тут крокі, якія працуюць для мяне:

  • кланаваць РЭПО ў любую новую часовую тэчку
  • cd у гэтую каранёвую тэчку, якую вы кланавалі лакальна
  • скапіяваць усё змесціва тэчкі, уключаючы каталог /.git, у любую існуючую тэчку; (Скажам, праект зацьмення, які вы жадаеце аб'яднаць з вашым РЭПО).

Існуючая папка, у якую вы толькі што скапіявалі файлы, зараз гатовая да ўзаемадзеяння з git.

-3
06 мая '13 в 5:16 2013-05-06 05:16 адказ дадзены Gene Bo 06 мая '13 у 05:16 2013/05/06 05:16

Іншыя пытанні па пазнаках або Задайце пытанне