Menjalankan perintah git clone [email protected]:whatever` menciptakan sebuah direktori di folder saat ini bernama apapun, dan tetes isi repositori Git ke folder itu:
/httpdocs/whatever/public
Masalah saya adalah bahwa saya perlu isi repositori Git kloning ke dalam direktori saya saat ini sehingga mereka muncul di lokasi yang tepat untuk web server:
/httpdocs/public
Aku tahu bagaimana untuk memindahkan file setelah saya've kloning repositori, tapi ini tampaknya melanggar Git, dan I'd ingin dapat update hanya dengan menelepon git pull
. Bagaimana saya bisa melakukan ini?
Pilihan:
git clone [email protected]:whatever folder-name
Ergo, untuk di sini
gunakan:
git clone [email protected]:whatever .
Pilihan B:
Memindahkan .git
folder, juga. Perhatikan bahwa .git
folder tersembunyi di paling grafis penjelajah berkas, jadi pastikan untuk menampilkan file yang tersembunyi.
mv /where/it/is/right/now/* /where/I/want/it/
mv /where/it/is/right/now/.* /where/I/want/it/
Baris pertama meraih semua normal file, baris kedua meraih dot-file. Hal ini juga possibe untuk melakukannya dalam satu baris dengan mengaktifkan dotglob (yaitu shopt -s dotglob
) tapi itu mungkin adalah solusi yang buruk jika anda menanyakan pertanyaan ini dengan jawaban jawaban.
Lebih baik lagi:
Membuat copy pekerjaan anda di tempat lain, dan membuat link simbolik. Seperti ini:
ln -s /where/it/is/right/now /the/path/I/want/to/use
Untuk kasus anda ini akan menjadi sesuatu seperti:
ln -sfn /opt/projectA/prod/public /httpdocs/public
Yang dengan mudah dapat diubah untuk menguji jika anda menginginkannya, yaitu:
ln -sfn /opt/projectA/test/public /httpdocs/public
tanpa memindahkan file. Menambahkan -fn
dalam kasus seseorang menyalin garis-garis ini (-f
adalah kekuatan, -n
menghindari beberapa sering interaksi yang tidak diinginkan dengan sudah dan non-link yang ada).
Jika anda hanya ingin bekerja, gunakan Opsi A, jika orang lain akan melihat apa yang telah anda lakukan, gunakan Opsi C.
Contoh yang saya pikir banyak orang yang menanyakan pertanyaan ini setelah ini. Jika anda di direktori yang anda ingin isi repositori git dibuang ke, jalankan:
git clone [email protected]:whatever .
"." pada akhir menentukan folder saat ini sebagai kasir folder.
Anda menduplikasi sebuah repositori dengan
git clone [url]
Misalnya, jika anda ingin mengkloning Stanford University Drupal Terbuka Kerangka Git perpustakaan yang disebut open_framework, anda dapat melakukannya seperti ini:
$ git clone git://github.com/SU-SWS/open_framework.git
Yang menciptakan sebuah direktori bernama open_framework (di lokal anda saat ini lokasi sistem berkas), menginisialisasi .git direktori dalam hal ini, menarik ke bawah semua data yang repositori, dan cek out copy versi terbaru. Jika anda pergi ke baru dibuat open_framework direktori, anda akan melihat file proyek di sana, siap untuk bekerja di atau yang digunakan.
Jika anda ingin clone repository ke dalam sebuah direktori bernama sesuatu yang lain dari open_framework, anda dapat menentukan bahwa sebagai opsi baris perintah:
$ git clone git:github.com/SU-SWS/open_framework.git mynewtheme
Perintah itu melakukan hal yang sama seperti sebelumnya, namun target direktori yang disebut mynewtheme.
Git memiliki jumlah yang berbeda protokol transfer yang dapat anda gunakan. Contoh sebelumnya menggunakan git:// protokol, tetapi anda juga dapat melihat http(s):// atau user@server:/path.git, yang menggunakan SSH transfer protocol.
Untuk clone git repositori ke dalam folder tertentu, anda dapat menggunakan -C <jalan>
parameter, misalnya
git -C /httpdocs clone [email protected]:whatever
Meskipun itu'll masih membuat apapun
folder di atas itu, jadi untuk mengkloning isi file dalam direktori saat ini, gunakan sintaks berikut:
cd /httpdocs
git clone [email protected]:whatever .
Perhatikan bahwa kloning ke dalam direktori yang sudah ada adalah hanya diperbolehkan ketika direktori kosong.
Karena anda're kloning ke dalam folder yang dapat diakses oleh publik, pertimbangkan untuk memisahkan repositori Git anda bekerja pohon dengan menggunakan --terpisah-git-dir=<git dir>
atau mengecualikan .git
folder di konfigurasi server web anda (misalnya dalam .htaccess
).
Clone:
git clone [email protected]:jittre/name.git
Clone "cabang tertentu":
git clone -b [branch-name] [email protected]:jittre/name.git
Untuk klon Menyajikan Direktori Kerja:
git clone https://github.com/link.git
Untuk klon Direktori Lain:
git clone https://github.com/link.git ./Folder1/Folder2
Semoga Membantu :)
Ketika anda memindahkan file ke mana anda ingin mereka, anda juga bergerak .git
direktori? Tergantung pada OS dan konfigurasi, direktori ini mungkin tersembunyi.
Ini berisi repo dan file pendukung, sementara proyek file-file yang ada di /publik
di direktori tersebut hanya versi di saat check-out cepat melakukan (master cabang secara default).
Penggunaan ****
git clone <repository>
Clone repository terletak di <repositori> ke mesin lokal. Asli repositori dapat terletak di filesystem lokal atau pada mesin remote yang dapat diakses melalui HTTP atau SSH.
git clone <repo> <directory>
Clone repository terletak di <repositori> ke folder yang disebut <direktori> pada mesin lokal.
Sumber: Pengaturan repositori
Berikut ini's bagaimana saya akan melakukannya, tapi saya telah membuat sebuah alias untuk melakukannya untuk saya.
$ cd ~Downloads/git; git clone https:git.foo/poo.git
Mungkin ada cara yang lebih elegan untuk melakukan hal ini, namun saya menemukan ini menjadi termudah untuk diriku sendiri.
Berikut ini's alias saya buat untuk mempercepat hal-hal bersama. Saya membuat ini untuk zsh, tapi itu harus bekerja dengan baik untuk bash atau shell seperti ikan, xyzsh, fizsh, dan sebagainya.
Edit ~/.zshrc
, /.bashrc
, dll. dengan editor favorit anda (saya adalah Leafpad, jadi aku akan menulis $ leafpad ~/.zshrc
).
Preferensi pribadi saya, bagaimanapun, adalah untuk membuat zsh plugin untuk melacak semua saya alias. Anda dapat membuat pribadi plugin untuk oh-my-zsh dengan menjalankan perintah ini:
$ 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'
Setelah itu, tambahkan baris ini untuk anda yang baru dibuat kosong alises.plugin file:
# Git aliases
alias gc="cd ~/Downloads/git; git clone "
(Dari sini, mengganti nama anda dengan saya.)
Kemudian, dalam rangka untuk mendapatkan hasil alias untuk bekerja, mereka (bersama dengan zsh) harus bersumber-in (atau apapun itu's disebut). Untuk melakukannya, di dalam custom plugin dokumen tambahkan ini:
## 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 "
####################################
Menyimpan oh-my-zsh plugin, dan menjalankan allsource
. Jika itu tampaknya tidak bekerja, hanya menjalankan sumber $ZSH/oh-my-zsh.sh; sumber /home/ev/.oh-my-zsh/plugins/ev-alias/ev-alias.plugin.zsh
. Yang akan memuat sumber plugin yang akan memungkinkan anda untuk menggunakan allsource
dari sekarang.
I'm dalam proses pembuatan sebuah repositori Git dengan saya alias. Silahkan merasa bebas untuk memeriksa mereka di sini: Ev's dot-file. Jangan ragu untuk garpu dan memperbaiki mereka untuk sesuai dengan kebutuhan anda.
Dari beberapa alasan sintaks ini tidak berdiri:
git clone repo-url [folder]
Di sini folder adalah opsional path ke folder lokal (yang akan menjadi repositori lokal).
Git clone
juga akan menarik
kode dari remote repositori ke dalam repositori lokal.
Pada kenyataannya hal ini benar:
git clone repo-url = git init + git remote add origin repo-url + git pull
Jika anda menggunakan ssh
untuk git kloning
anda dapat menggunakan perintah berikut.
git -C jalan clone [email protected]:path_to_repo.git
misalnya:
git -C /home/ubuntu/ clone [email protected]:kennethreitz/requests.git
akan tarik git repositori untuk permintaan
untuk anda /home/ubuntu/
path.
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 .
Meskipun semua jawaban di atas adalah baik, saya ingin mengusulkan sebuah metode baru, bukan menggunakan link simbolik metode di depan umum html direktori seperti yang diusulkan TERBAIK dalam jawaban yang diterima. Anda harus memiliki akses ke server anda konfigurasi virtual host.
Ini adalah tentang konfigurasi virtual host server web anda langsung menunjuk ke direktori repositori. Di Apache dapat anda lakukan seperti:
DocumentRoot /var/www/html/situs/situs-git-repo
Berikut adalah contoh dari sebuah file virtual host:
<VirtualHost *:443>
ServerName example.com
DocumentRoot /path/to/your-git-repo
...
...
...
...
</VirtualHost>
Saya akan merekomendasikan anda untuk mengikuti link berikut:
https://help.github.com/en/articles/cloning-a-repository
Jika anda mendapatkan error berikut ketika git clone URL perintah
fatal: unable to access 'URL': Could not resolve host: github.com
Kemudian gunakan perintah berikut ini untuk memperbaikinya:
git config --global --unset https.proxy
Mengenai hal ini garis dari post original:
"aku tahu bagaimana untuk memindahkan file setelah saya've clone repo, tapi ini tampaknya melanggar git"
Saya bisa melakukan itu dan saya don't melihat masalah apapun sejauh ini saya tambahkan, commit, push, pull operasi.
Pendekatan ini dinyatakan di atas, tetapi hanya tidak dipecah menjadi langkah-langkah. Berikut ini's langkah-langkah yang bekerja untuk saya:
Ada folder anda hanya menyalin file ke dalam , sekarang siap untuk berinteraksi dengan git.