Git depo dizini konumunu değiştirin.


200

Windows için Git / Github ile, bu dizinde bir depom varsa: C:\dir1\dir2repo dosyalarını taşımak için ne yapmam gerekir C:\dir1? Açıkça fiziksel olarak dosyaları kopyalayıp yapıştırabilirim, ancak Git tarafında ne yapmam gerekir?

GitHub'da bu repo var ve Windows için Git Bash ve GitHub kullanıyorum.


1
Bu cevaba bakın, başka bir klasöre veya başka bir bilgisayara geçmek için aynıdır.
rekenerd

Yanıtlar:


236

Tüm çalışma dizini içeriğini (gizli .gitdizin dahil ) kopyalamanız yeterlidir . Bu, tüm çalışma dizinini yeni dizine taşır ve GitHub'daki uzak depoyu etkilemez.

Windows için GitHub kullanıyorsanız, yukarıdaki yöntemi kullanarak havuzu taşıyabilirsiniz. Ancak, uygulamada depoya tıkladığınızda bulamaz. Bu sorunu çözmek için! İle mavi daireye tıklayın, Bul'u seçin ve ardından yeni dizine göz atın.


3
Peki Windows için GitHub yerel repoyu nasıl izler? O tarafta bazı yapılandırmalar olmalı.

3
Bunu Windows'ta yaptığımda beni yeni bir repo yaratmaya zorladı.
472084

1
@Jleagle, Bu yanıt gönderildiği için değiştirmiş olabilirler. Bir göz atacağım ve gerekirse cevabımı güncelleyeceğim.
ctor

2
Sizden yeni bir repo yaratmanızı istememelisiniz: eğer bu olduysa, git dosyasını (belki de gizli olanı) kaçırmışsınızdır. Bana oldu ve tekrar denediğimde bazılarını kaçırdığımı fark ettim.
Juan

1
Win'deyim. Klasörü manuel olarak yeni bir konuma taşıdıktan sonra Git GUI Uygulamasını yeniden açtım ve proje klasörünü de manuel olarak yeniden konumlandırdım. Bu şekilde benim için çalışıyor.
kuncevic.dev

42

Sorudan emin değilim, işte iki cevap:

Deponuzu taşımak istiyorsanız:

Deponun tamamını kopyalayın ( .gitdizini ile birlikte ).

.gitYapıda mutlak bir yol yoktur ve hareket etmesini engelleyen hiçbir şey yoktur, böylece hareketten sonra yapacak bir şeyiniz yoktur. Tüm github bağlantıları (bakınız .git/config) önceki gibi çalışacaktır.

Dosyaları deponun içine taşımak istiyorsanız:

Sadece dosyaları taşıyın. Sonra içinde listelenen değişiklikleri ekleyin git status. Bir sonraki commitgerekli olanı yapacak. Hiçbir dosyanın kopyalanmayacağını öğrenmekten mutluluk duyacaksınız: git'deki bir dosyayı taşımak neredeyse maliyetsizdir.


1
Peki Windows için GitHub yerel repoyu nasıl izler? O tarafta bazı yapılandırmalar olmalı.

@ user596075 .gitdizinde.
OrangeDog

24

Kullanıyorsanız GitHub Desktop, aşağıdaki adımları uygulayın:

  1. Kapatın GitHub Desktopve açık dosyaları olan diğer tüm uygulamalar geçerli dizin yolunuza.
  2. Dizinin tamamını yukarıda belirtildiği gibi yeni dizin konumuna taşıyın.
  3. GitHub DesktopMavi (!) "Depo bulunamadı" simgesini açın ve tıklayın. Ardından bir iletişim kutusu açılır ve yolunu yeni bir konuma yönlendirmenizi sağlayan bir açılır pencere açacak bir "Bul ..." düğmesi görürsünüz.

8

Soru Windows için Git'i içeriyor olsa da, Git için Visual Studio Araçları'nı ararken bile en iyi sonuç gibi görünüyor (VS 2012'de uzantı, VS 2013'te yerel destek).

Yukarıdaki çözümleri kılavuz olarak kullanarak Visual Studio Git Tools'un hareketli depoları (veya tüm depolar için tüm dizin yapısını) yerel olarak çok kolay hale getirdiğini belirledim.

1) Visual Studio'yu kapatın. 2) Repo klasörlerini yeni konumuna taşıyın. 3) Visual Studio'yu açın. Ekip Gezgini'ni açın. "Bağlan" görünümüne geçin (üstteki fiş simgesi). 3a) Depolar hala eski yolu gösteriyorsa, bir güncellemeyi zorlamak için Yenile'yi tıklayın. 4) Yerel olarak taşınan depolar artık " Yerel Git Depoları " nda gösterilmemelidir. 5) Ekle'ye tıklayın (yeni değil veya klonlayın) ve eklenecek repo klasörünü seçin.

5. adımda gerçekten bir arama yolu sağlıyorsunuz ve arama otomatik olarak tüm alt klasörleri içeriyor. Tek bir kök altında düzenlenmiş birden çok havuzunuz varsa (yalnızca aynı ana klasöre sahip bağımsız depolar), üst öğe seçildiğinde bunun altında bulunan tüm depolar bulunur.

Örnek: E: \ Repos \ RepoA E: \ Repos \ RepoB E: \ Repos \ RepoC

Visual Studio Team Explorer'da [Ekle]> "E: \ Repos \"> [Ekle] her üçünü de Yerel Depolara döndürür.


6

Her ne kadar önceki yanıtların hepsi dizini taşıyabileceğinizi ve .git yapısında mutlak yol olmadığını söylüyor. Cygwin'den git kullanırken bunu yanlış buldum.

Git repo'mı taşıdığımda (aslında bir yedeklemeden geri yükledim, ancak yeni sistemimdeki sürücü yapım değiştikçe farklı bir sürücüye geri yükledim). Gibi bir hata mesajı aldım

fatal: Invalid path '<part_of_the_original_repo_path>': No such file or directory

Grep'i, [core] bölümündeki .git / config dosyamda git repo'mun mutlak yolunu tutan bir çalışma ağacı değişkeni olduğunu bulmak için kullandım. Bunu değiştirmek benim için problemi çözdü.


4

Visual Studio git eklentisini kullanıyorum ve taşımak istediğim IIS üzerinde çalışan bazı web sitelerim var. Benim için çalışan basit bir yol:

  1. Visual Studio'yu kapatın.

  2. Kodu taşıma (git klasörü vb. Dahil)

  3. Yeni konumdan çözüm dosyasına tıklayın

Bu, taşınan mevcut yerel git dosyalarını kullanarak eşlemeyi yeni konuma yeniler. Visual Studio'ya döndüğümde, Team Explorer pencerem depoları yeni konumda gösterdi.


2

Windows için Github Desktop kullanıyorum ve bir deponun konumunu taşımak istedim. Dizininizi taşırsanız ve yazılımdaki yeni konumu seçerseniz sorun olmaz. Ancak, kötü bir dizin ayarlarsanız, önemli bir hata alırsınız ve iyi olana yeniden yerleştirme şansınız olmaz. Bunu onarmak için. Kötü dizindeki proje dosyalarını kopyalamanız, Github Desktop tarafından yeniden yapılandırılmasını sağlamanız gerekir, bundan sonra projenizi başka bir klasöre tekrar taşıyabilir ve yazılımda yeniden konumlandırabilirsiniz. Bunun için Github Desktop'ı kapatmaya gerek yok, klasörleri canlı olarak kontrol edecek.

Bunu ummak birine yardım eder.


1

Bu benim için işe yaramadı. Bir repo'yu (örneğin) c: \ project1 \ 'den c: \ repo \ project1 \' ye taşıdım ve Windows için Git herhangi bir değişiklik göstermiyor.

git durumu bir hata gösterir, çünkü alt modüllerden biri "git deposu değildir" ve eski yolu gösterir. ör. (IP'yi korumak için adlar değiştirildi)

ölümcül: Git deposu değil: C: /project1/.git/modules/subproject/subproject2 ölümcül: 'git status --porcelain' alt modül alt projesinde başarısız oldu

Alt modülün repo doğru göreceli yolu işaret etmek için alt modüllerde .git dosyalarını el ile düzenlemek zorunda kaldı (ana repo en .git / modülleri dizininde)


1

Gelecekten gelen rapor: Nisan 2018.

Mac'imde ve farklı yerel klasörlerde bulunan Windows'umdaki yerel depolarımı normalleştirmek istedim.

Windows 10 istemcisi beni "Bulamıyorum"> "Bul" yordamından geçirdi, sıkıcı ama korkunç değil. Ayrıca ileride kullanılmak üzere Seçenekler'deki yerel "Klon yolunu" güncellemeniz gerekir.

Mac klasörlerini birleştirdiğimde, Github istemcisi onları tekrar buldu - hiçbir şey yapmam gerekiyordu!


0

Bunlardan birini her kopyaladığınızda havuzlarınız için varsayılan yerel yolu ayarlamak için, yalnızca bir havuzu kopyalamanız ve Localpath: / your-path ayarlamanız gerekir, ardından github bu yolu varsayılan olarak otomatik olarak algılar.


Bu asıl soruya cevap vermiyor gibi görünüyor - belki de cevabınızın zaten kabul edilen cevaba nasıl bir şey eklediğini netleştirebilirsiniz? Teşekkürler.
rwp

0

Git tabanlı bir yaklaşım, yerel kopyanızda değişiklik yapmak cdveya kopyalamak ve yapıştırmak ve ardından bu değişiklikleri yerelden uzak depoya aktarmaktır.

Yerel deponuzun durumunu denetlemeye çalışırsanız, gerçekte yeniden konumlandırılan dosyalar olan "izlenmemiş değişiklikler" görüntülenebilir. Bu değişiklikleri zorlamak için, bu dosyaları / dizinleri kullanarak

$ git add -A
#And commiting them
$ git commit -m "Relocating image demo files"
#And finally, push
$ git push -u local_repo -f HEAD:master

Umarım yardımcı olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.