Menjalankan perintah git clone [email protected]:whatever
membuat direktori di folder saya saat ini bernama whatever
, dan menjatuhkan konten repositori Git ke folder itu:
/httpdocs/whatever/public
Masalah saya adalah bahwa saya perlu isi repositori Git yang dikloning ke direktori saya saat ini sehingga mereka muncul di lokasi yang tepat untuk server web:
/httpdocs/public
Saya tahu cara memindahkan file setelah saya mengkloning repositori, tetapi ini sepertinya membuat Git putus, dan saya ingin dapat memperbarui hanya dengan menelepon git pull
. Bagaimana saya bisa melakukan ini?
git
repository
git-clone
David Smith
sumber
sumber
Jawaban:
Opsi A:
Ergo, untuk
right here
digunakan:Opsi B:
Pindahkan
.git
folder juga. Perhatikan bahwa.git
folder disembunyikan di sebagian besar penjelajah file grafis, jadi pastikan untuk menampilkan file tersembunyi.Baris pertama mengambil semua file normal, baris kedua mengambil file dot. Mungkin juga untuk melakukannya dalam satu baris dengan mengaktifkan dotglob (yaitu
shopt -s dotglob
) tetapi itu mungkin solusi yang buruk jika Anda menanyakan pertanyaan yang dijawab oleh jawaban ini.Lebih baik:
Simpan copy pekerjaan Anda di tempat lain, dan buat tautan simbolis. Seperti ini:
Untuk kasus Anda ini akan menjadi seperti:
Yang dengan mudah dapat diubah untuk menguji jika Anda menginginkannya, yaitu:
tanpa memindahkan file. Ditambahkan
-fn
jika seseorang menyalin garis-garis ini (-f
paksa,-n
hindari beberapa interaksi yang sering tidak diinginkan dengan tautan yang sudah ada dan yang tidak ada).Jika Anda hanya ingin bekerja, gunakan Opsi A, jika orang lain akan melihat apa yang telah Anda lakukan, gunakan Opsi C.
sumber
ln -s path/to/.git path/to/working/directory
Contoh saya pikir banyak orang yang menanyakan pertanyaan ini setelah ini. Jika Anda berada di direktori yang Anda inginkan agar konten repositori git dibuang, jalankan:
"." pada bagian akhir menentukan folder saat ini sebagai folder checkout.
sumber
ls -a
akan menampilkan semua file, termasuk yang tersembunyi.Masuk ke folder .. Jika folder kosong, maka:
lain
sumber
switch -t
aktif tidak ditunjukkan dengan jelas pada dokumentasi git checkout .Kloning Repositori Basic Git
Anda mengkloning repositori dengan
Misalnya, jika Anda ingin mengkloning perpustakaan Open Framework Git Stanford University Drupal yang disebut open_framework, Anda dapat melakukannya seperti ini:
Itu menciptakan direktori bernama open_framework (di lokasi sistem file lokal Anda saat ini), menginisialisasi direktori .git di dalamnya, menarik semua data untuk repositori itu, dan memeriksa salinan versi terbaru yang berfungsi. Jika Anda masuk ke direktori open_framework yang baru dibuat, Anda akan melihat file proyek di sana, siap untuk dikerjakan atau digunakan.
Mengkloning Repositori ke dalam Folder Lokal Tertentu
Jika Anda ingin mengkloning repositori ke direktori bernama sesuatu selain open_framework, Anda dapat menentukan itu sebagai opsi baris perintah berikutnya:
Perintah itu melakukan hal yang sama dengan yang sebelumnya, tetapi direktori target disebut mynewtheme.
Git memiliki sejumlah protokol transfer berbeda yang dapat Anda gunakan. Contoh sebelumnya menggunakan protokol git: //, tetapi Anda juga dapat melihat http: // atau user @ server: /path.git, yang menggunakan protokol transfer SSH.
sumber
Untuk mengkloning git repositori ke folder tertentu, Anda dapat menggunakan
-C <path>
parameter, misMeskipun masih akan membuat
whatever
folder di atasnya, jadi untuk mengkloning konten repositori ke direktori saat ini, gunakan sintaks berikut:Perhatikan bahwa kloning ke direktori yang ada hanya diperbolehkan ketika direktori kosong .
Karena Anda melakukan kloning ke folder yang dapat diakses untuk umum, pertimbangkan untuk memisahkan repositori Git Anda dari pohon kerja Anda dengan menggunakan
--separate-git-dir=<git dir>
atau mengecualikan.git
folder dalam konfigurasi server web Anda (misalnya dalam.htaccess
file).sumber
Untuk mengkloning ke Present Working Directory :
Untuk mengkloning ke Direktori Lain :
Semoga Membantu :)
sumber
./
di awal jalan ke folderKetika Anda memindahkan file ke tempat yang Anda inginkan, apakah Anda juga memindahkan
.git
direktori? Bergantung pada OS dan konfigurasi Anda, direktori ini mungkin disembunyikan.Ini berisi repo dan file pendukung, sementara file proyek yang ada di
/public
direktori Anda hanya versi dalam komit check-out yang saat ini (cabang master secara default).sumber
Klon:
Kloning "cabang spesifik":
sumber
Jika Anda ingin mengkloning ke folder saat ini, Anda harus mencoba ini:
sumber
Pemakaian
Kloning repositori yang terletak di <repositori> ke mesin lokal. Repositori asli dapat ditemukan di sistem file lokal atau pada mesin jarak jauh yang dapat diakses melalui HTTP atau SSH.
Kloning repositori yang terletak di <repositori> ke folder yang disebut <direktori> pada mesin lokal.
Sumber: Menyiapkan repositori
sumber
Pastikan Anda menghapus repositori .git jika Anda mencoba mengeceknya ke direktori saat ini.
rm -rf .git
kemudiangit clone https://github.com/symfony/symfony-sandbox.git
sumber
Inilah cara saya akan melakukannya, tetapi saya telah membuat alias untuk melakukannya untuk saya.
Mungkin ada cara yang lebih elegan untuk melakukan ini, namun saya menemukan ini paling mudah untuk diri saya sendiri.
Inilah alias yang saya buat untuk mempercepat. Saya membuatnya untuk zsh, tetapi harus berfungsi baik untuk bash atau kulit lainnya seperti ikan, xyzsh, fizsh, dan sebagainya.
Edit
~/.zshrc
,,/.bashrc
dll. Dengan editor favorit Anda (milik saya adalah Leafpad, jadi saya akan menulis$ leafpad ~/.zshrc
).Preferensi pribadi saya, bagaimanapun, adalah membuat plugin zsh untuk melacak semua alias saya. Anda dapat membuat plugin pribadi untuk oh-my-zsh dengan menjalankan perintah ini:
Setelah itu, tambahkan baris ini ke file kosong alises.plugin baru Anda buat:
(Dari sini, ganti namamu dengan namaku.)
Kemudian, untuk membuat alias bekerja, mereka (bersama dengan zsh) harus bersumber (atau apa pun namanya). Untuk melakukannya, di dalam dokumen plugin khusus Anda tambahkan ini:
Simpan plugin oh-my-zsh Anda, dan jalankan
allsource
. Jika itu tampaknya tidak berhasil, jalankan sajasource $ZSH/oh-my-zsh.sh; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh
. Itu akan memuat sumber plugin yang akan memungkinkan Anda untuk menggunakanallsource
mulai sekarang.Saya sedang dalam proses membuat repositori Git dengan semua alias saya. Silakan memeriksanya di sini: File-file Ev . Silakan bercabang dan tingkatkan sesuai kebutuhan Anda.
sumber
Jika Anda menggunakan
ssh
untukgit cloning
Anda dapat menggunakan perintah berikut.git -C path clone [email protected]:path_to_repo.git
contoh:
git -C /home/ubuntu/ clone [email protected]:kennethreitz/requests.git
akan menarik repositori gitrequests
ke/home/ubuntu/
path Anda .sumber
Dari beberapa alasan sintaks ini tidak menonjol:
git clone repo-url [folder]
Folder Di sini adalah jalur opsional ke folder lokal (yang akan menjadi repositori lokal).
Git
clone
juga akanpull
kode dari repositori jarak jauh ke dalam repositori lokal. Sebenarnya itu benar:sumber
Walaupun semua jawaban di atas bagus, saya ingin mengusulkan metode baru alih-alih menggunakan metode tautan simbolis dalam direktori html publik seperti yang diusulkan TERBAIK dalam jawaban yang diterima. Anda harus memiliki akses ke konfigurasi host virtual server Anda.
Ini adalah tentang mengonfigurasi host virtual dari server web Anda yang langsung menunjuk ke direktori repositori. Di Apache Anda dapat melakukannya seperti:
Berikut adalah contoh file host virtual:
sumber
Anda dapat menggunakan perintah git berikut untuk mengkloning dengan nama direktori kustom
Catatan: Anda tidak perlu membuat direktori custome Anda karena itu akan dibuat secara otomatis
sumber
sumber
Mengenai baris ini dari pos asli:
Saya dapat melakukan itu dan sejauh ini saya tidak melihat masalah dengan operasi add, commit, push, pull.
Pendekatan ini dinyatakan di atas, tetapi tidak dipecah menjadi beberapa langkah. Inilah langkah-langkah yang berhasil bagi saya:
Folder yang ada yang baru saja Anda salin file, sekarang siap untuk berinteraksi dengan git.
sumber