.gitignore dan “File pohon kerja yang tidak terlacak berikut akan ditimpa dengan checkout”

828

Jadi saya menambahkan folder ke file .gitignore saya.

Setelah saya melakukan git statusitu memberitahu saya

# On branch latest
nothing to commit (working directory clean)

Namun, ketika saya mencoba mengubah cabang saya mendapatkan yang berikut:

My-MacBook-Pro:webapp marcamillion$ git checkout develop
error: The following untracked working tree files would be overwritten by checkout:
    public/system/images/9/thumb/red-stripe.jpg
    public/system/images/9/original/red-stripe.jpg
    public/system/images/8/thumb/red-stripe-red.jpg
    public/system/images/8/original/red-stripe-red.jpg
    public/system/images/8/original/00-louis_c.k.-chewed_up-cover-2008.jpg
    public/system/images/7/thumb/red-stripe-dark.jpg
    public/system/images/7/original/red-stripe-dark.jpg
    public/system/images/7/original/DSC07833.JPG
    public/system/images/6/thumb/red-stripe-bw.jpg
    public/system/images/6/original/website-logo.png
    public/system/images/6/original/red-stripe-bw.jpg
    public/system/images/5/thumb/Guy_Waving_Jamaican_Flag.jpg
    public/system/images/5/original/logocompv-colored-squares-100px.png
    public/system/images/5/original/Guy_Waving_Jamaican_Flag.jpg
    public/system/images/4/thumb/DSC_0001.JPG
    public/system/images/4/original/logo.png
    public/system/images/4/original/DSC_0001.JPG
    public/system/images/4/original/2-up.jpg
    public/system/images/3/thumb/logo2.gif
    public/system/images/3/original/logo2.gif
    public/system/images/3/original/Guy_Waving_Jamaican_Flag.jpg
    public/system/images/3/original/11002000962.jpg
    public/system/images/2/thumb/Profile Pic.jpg
    public/system/images/2/original/Profile Pic.jpg
    public/system/images/2/original/02 Login Screen.jpg
    public/system/images/1/original/Argentina-2010-World-Cup.jpg
Please move or remove them before you can switch branches.
Aborting

Seperti inilah file .gitignore saya:

.bundle
.DS_Store
db/*.sqlite3
log/*.log
tmp/**/*
public/system/images/*
public/system/avatars/*

Bagaimana cara ini berfungsi sehingga saya bisa berganti cabang tanpa menghapus file-file itu?

Jika saya melakukan perubahan, apakah itu akan memengaruhi file-file itu? Dengan kata lain, jika saya kembali ke cabang ini setelah itu akankah semuanya sempurna sesuai dengan komitmen terbaru saya?

Saya tidak ingin kehilangan file-file itu, saya hanya tidak ingin mereka dilacak.

marcamillion
sumber
10
jika Anda benar-benar tidak peduli dengan file-file ini: git checkout -f <branch> dalam kasus saya file-file tersebut dihasilkan dalam proses build, jadi saya tidak peduli.
Hobbamok
Kadang-kadang terjadi jika Anda melakukan 'git checkout' (tanpa nama cabang). Untuk memperbaiki, melakukan 'git checkout branchname'
perajin
Pisahkan, tetapi terkait pertanyaan kritis: mengapa kesalahan ini terjadi sama sekali? mengapa git tidak bisa beralih antar cabang saja?
ahnbizcad
@ahnbizcad Karena jika Anda sedang mengerjakan file baru, dan seseorang di cabang lain kebetulan melakukan file dengan nama yang sama, Anda akan kesal jika git menghancurkan versi Anda ketika Anda berpindah cabang. Itu sebabnya bendera -f ada di sana.
Matthew Sharp

Jawaban:

264

Sepertinya Anda ingin file diabaikan tetapi sudah dilakukan. .gitignore tidak berpengaruh pada file yang sudah ada di dalam repo sehingga harus dihapus git rm --cached. Itu --cachedakan mencegahnya memiliki efek pada copy pekerjaan Anda dan itu hanya akan ditandai sebagai dihapus saat berikutnya Anda melakukan. Setelah file dihapus dari repo maka .gitignore akan mencegah mereka untuk ditambahkan lagi.

Tetapi Anda memiliki masalah lain dengan .gitignore Anda, Anda menggunakan wildcard secara berlebihan dan menyebabkannya kurang cocok dari yang Anda harapkan. Alih-alih mari kita ubah .gitignore dan coba ini.

.bundle
.DS_Store
db/*.sqlite3
log/*.log
tmp/
public/system/images/
public/system/avatars/
Arrowmaster
sumber
2
Terima kasih .... Saya menghapus semua file dari cabang saat ini dan mencadangkannya. Kemudian beralih cabang dan menaruhnya kembali. Itu berhasil. Juga, terima kasih atas tipnya di .gitignore
marcamillion
@marcamillion: Apa yang Anda maksud dengan "itu berhasil"? Jika file dilacak pada cabang tempat Anda beralih, Anda telah menimpanya dengan versi Anda, yang mungkin berbeda ...
Cascabel
1
Saya mengalami masalah dengan folder / build yang tidak perlu dilacak. Jadi saya menghapus folder lokal, melakukan file gitignore saya, lalu memeriksa cabang lainnya. Itu akhirnya berhasil untuk saya.
Mike S.
16
Saya pikir bagian pertama adalah kebalikan dari pesan kesalahan khusus ini. Kesalahan ini menyatakan bahwa pengguna saat ini berada di cabang yang tidak memiliki file JPG yang dilacak dan pengguna mencoba untuk pindah ke yang melakukannya. Jadi melakukan git rm --cachedtidak akan membuat perbedaan, file-file itu tidak ada di cabang saat ini. Untuk kesalahan ini saya pikir pengguna harus mengikuti jawaban @Greg Hewgill - "pindahkan mereka dari copy pekerjaan, alihkan cabang, dan pindahkan kembali".
Studgeek
5
Bagaimana cara memecahkan masalah your files would be overwrittendengan fatal: pathspec 'test/node_modules' did not match any filesketika saya melakukannya git rm -r --cache test/node_modules? Saya tidak dapat menarik karena pesan yang ditimpa dan tidak dapat menghapus karena git tidak dapat menemukan mereka (mereka ada di sana)
HMR
1047

PERINGATAN: itu akan menghapus file yang tidak terlacak, jadi itu bukan jawaban yang bagus untuk pertanyaan yang diajukan.

Saya menekan pesan ini juga. Dalam kasus saya, saya tidak ingin menyimpan file, jadi ini bekerja untuk saya:

git 2.11 dan yang lebih baru

git clean  -d  -f .

git yang lebih tua

git clean  -d  -f ""

Jika Anda juga ingin menghapus file yang diabaikan oleh git, maka jalankan perintah berikut.

DIPERINGATKAN !!! INI PALING MUNGKIN MENGHANCURKAN PROYEK ANDA, GUNAKAN HANYA JIKA ANDA TAHU 100% APA YANG ANDA LAKUKAN

git 2.11 dan yang lebih baru

git clean  -d  -fx .

git yang lebih tua

git clean  -d  -fx ""

http://www.kernel.org/pub/software/scm/git/docs/git-clean.html

  • -x berarti file yang diabaikan juga dihapus serta file yang tidak diketahui git.

  • -d berarti menghapus direktori yang tidak dilacak selain file yang tidak dilacak.

  • -f diperlukan untuk memaksanya berjalan.

Scott Schafer
sumber
7
Terima kasih, setelah bersih itu saya bisa rebase;
Alexander Beletsky
139
HATI-HATI SAAT MENJALANKAN git bersih!
Noel
249
Untuk menghindari facepalm, pertama jalankan dengan opsi dry-run untuk melihat apa yang akan dilakukan: git clean -dfxnataugit clean -dfx --dry-run
Dennis
74
Omong kosong Ini menghapus semua file konfigurasi pada xcode saya dan sekarang proyek berubah menjadi proyek mac. SANGAT HATI-HATI SAAT MENJALANKAN PERINTAH INI. Saya pikir itu hanya akan menghapusnya dari git.
tyegah123
25
The -xpilihan menyakitkan saya
Wener
589

Peringatan: Ini akan menghapus file lokal yang tidak diindeks

Paksa saja: git checkout -f another-branch

Régis
sumber
78
Peringatan: Ini akan menghapus file lokal yang tidak diindeks.
givanse
git clean tidak bekerja untuk saya, tetapi kekuatan persis apa yang saya butuhkan. Itu macet di cabang itu dan saya hanya perlu untuk mengubah cabang.
Simon The Cat
7
Saya tidak ingin file yang tidak diindeks! +1 untuk Anda
ryansstack
saya mendapat kesalahan ini ,,, :(error: pathspec 'mybranch' did not match any file(s) known to git.
Budi Mulyo
2
Inilah jawaban sebenarnya.
metamonkey
147

Jika Anda menggunakan OS X, itu mungkin karena nama file memiliki karakter tertentu yang mengubah huruf. Coba atur opsi konfigurasi berikut:

git config core.ignorecase true
mattbasta
sumber
13
Ini bekerja pada Windows juga, sepertinya situasi ini terjadi di tempat pertama karena perubahan kasus yang GIT tidak dapat menentukan
SagiLow
4
Ini persis masalah yang saya miliki, path file berbeda dengan satu huruf huruf - Windows memperlakukan ini sama tetapi GIT tidak yang merupakan masalah.
Daniel Sokolowski
1
Masalah saya terjadi pada checkout cabang lain di Windows 10, dan ini hanya berfungsi untuk saya, Terima kasih
Weijie Sun
luar biasa! ini memperbaiki masalah saya ketika saya sedang bergerak di antara tag
William Añez
1
Ini juga berfungsi jika Anda mencobanya git rebasejuga. Terima kasih.
user3890355
42

Git memberitahu Anda bahwa ia ingin membuat file (bernama public/system/images/9/...dll), tetapi Anda sudah memiliki file yang ada dalam direktori yang yang tidak dilacak oleh Git. Mungkin orang lain menambahkan file-file itu ke repositori Git, dan ini adalah pertama kalinya Anda beralih ke cabang itu?

Mungkin ada alasan mengapa file-file di developcabang Anda tetapi tidak di cabang Anda saat ini. Anda mungkin harus bertanya kepada kolaborator Anda mengapa demikian.

bagaimana cara agar ini berfungsi sehingga saya dapat berganti cabang tanpa menghapus file-file itu?

Anda tidak dapat melakukannya tanpa membuat file hilang entah bagaimana. Anda dapat mengubah nama publicmenjadi my_publicatau sesuatu untuk saat ini.

jika saya kembali ke cabang ini setelah itu apakah semuanya akan sempurna hingga komit terbaru saya?

Jika Anda melakukan perubahan, Git tidak akan kehilangannya. Jika Anda tidak melakukan perubahan, maka Git akan berusaha sangat keras untuk tidak menimpa pekerjaan yang telah Anda lakukan. Itulah yang diingatkan Git pada Anda pada contoh pertama di sini (ketika Anda mencoba untuk berpindah cabang).

Greg Hewgill
sumber
Terima kasih untuk penjelasannya. Saya mencadangkan file, beralih cabang dan menggabungkannya lalu mengganti file di folder publik. Itu berhasil.
marcamillion
1
Seperti yang saya komentari pada jawaban @ Arrowmaster. Ini adalah jawaban yang tepat untuk pesan kesalahan. Ini mungkin bukan jawaban yang tepat untuk penanya ini karena dia masalah sebenarnya tampaknya menjadi gitignore nya.
studgeek
38

Ini berhasil untuk saya.

 1. git fetch --all
 2. git reset --hard origin/{branch_name}
Chamara Jayalath
sumber
5
Silakan tambahkan penjelasan tentang solusi Anda. lihat stackoverflow.com/help/how-to-answer
user7294900
Inilah pendapat saya. Salinan lokal cabang jauh Anda sebenarnya memiliki semua file yang tidak terlacak, entah bagaimana. Anda memeriksa itu untuk memulihkan file yang tidak dilacak yang awalnya dikeluhkan. Sekarang Anda dapat beralih ke cabang lain
ahnbizcad
2
Untuk beberapa alasan, ini adalah satu-satunya solusi yang berfungsi untuk saya. Terima kasih sobat.
Kiwad
Memecahkan masalah saya. Terima kasih
Devashis Kant
Terima kasih banyak, sangat sederhana! git reset --soft asal / kembangkan. Betapa aku benci mengedit konflik gabungan ini. Perintah ini sangat bagus dan sederhana.
nine9five
22

Ada perintah untuk tugas rumit ini (menghapus file yang tidak terlacak secara permanen)

git clean -i

Maka git pullakan dilakukan.

Abhishek Goel
sumber
13

Bagi mereka yang membutuhkan sesuatu yang jauh dari jawaban Scott Schafer ,

git clean -f

kemungkinan akan bekerja. Saya sangat menyarankan berlari

git clean --dry-run

pertama. Perintah itu akan menampilkan daftar file yang akan dihapus Git jika Anda menjalankangit clean -f , dan mungkin menyelamatkan Anda dari rasa sakit karena secara tidak sengaja menghapus sesuatu yang tidak Anda inginkan.

Lihat jawaban Stack Oveflow ini atau dokumen untuk informasi lebih lanjut tentang git clean.

mc_kaiser
sumber
12

Sayangnya tidak ada git rm --cachedatau git clean -d -fx ""tidak melakukannya untuk saya.

Solusi saya akhirnya adalah mendorong cabang saya ke jarak jauh, mengkloning repo baru, lalu melakukan penggabungan dalam repo baru. Orang lain yang mengakses repo harus melakukan hal yang sama.

Moral cerita: gunakan .gitignorefile sejak awal.

Kyle Clegg
sumber
10

Jika Anda ingin menyelesaikan pertanyaan ini dengan cepat, Anda dapat menggunakan perintah ini:

git checkout -f dev
GeekHades
sumber
Ini membantu saya, ketika masalah saya tidak terkait dengan .gitignoreafaik.
Nakilon
error: pathspec 'dev' tidak cocok dengan file apa pun yang dikenal git.
Hitam
@ Black 'dev' adalah nama cabang, ganti cabang Anda
Vinit Solanki
8

Saya memiliki masalah yang sama ketika memeriksa ke cabang berdasarkan komit sebelumnya. Git menolak untuk checkout karena file-file yang tidak terlacak.

Saya telah menemukan solusi dan saya harap ini akan membantu Anda juga.

Menambahkan direktori yang terpengaruh ke .gitignoredan mengeluarkan$ git rm -r --cached tampaknya tidak cukup.

Asumsikan Anda ingin membuat cabang berdasarkan komit sebelumnya untuk menguji beberapa hal dan kembali ke versi saat ini. Saya akan melakukannya dalam langkah-langkah berikut:

  1. Setup file yang tidak dilacak: edit .gitignoredan terapkan $ git rm -r --cachedpada file dan direktori yang Anda ingin diabaikan oleh git. Tambahkan juga file .gitignoreitu sendiri ke .gitignoredan jangan lupa untuk menerbitkan $ git rm -r --cached .gitignore. Ini akan memastikan perilaku abaikan dari git tetap sama di commit sebelumnya.

  2. Komit perubahan yang baru saja Anda buat:

    $ git add -A
    $ git commit

  3. Simpan log saat ini, jika tidak, Anda mungkin mendapatkan masalah kembali ke versi saat ini

    $ git log > ../git.log

  4. Hard reset ke komit K

    $ git reset --hard version_k

  5. Buat cabang berdasarkan komit K

    $ git branch commit_k_branch

  6. Periksa ke cabang itu

    $ git checkout commit_k_branch

  7. Kerjakan barangmu dan lakukan itu

  8. Checkout kembali menjadi master lagi

    $ git checkout master

  9. Setel ulang ke Versi saat ini lagi

    $ git reset current_version atau $ git reset ORIG_HEAD

  10. Sekarang Anda dapat mengatur ulang hard ke HEAD

    git reset --hard HEAD

CATATAN! Jangan melewatkan langkah selanjutnya ke terakhir (seperti misalnya $ git reset --hard ORIG_HEAD ) jika tidak file yang dilacak git yang dikomplain di atas akan hilang.

Saya juga memastikan file yang dikeluhkan git tidak dihapus. Saya menyalinnya ke file teks dan mengeluarkan perintah$ for i in $(cat ../test.txt); do ls -ahl $i; done

Jika Anda checkout ke cabang yang disebutkan di atas lagi, jangan lupa untuk mengeluarkan $ git statusuntuk memastikan tidak ada perubahan yang tidak diinginkan muncul.

Juri Sinitson
sumber
8

Ini terjadi pada saya di sistem Windows 8 , menggunakan Git dari command prompt. Anggota tim saya yang lain menggunakan TFS , dan saya menggunakan Microsoft git-tf untuk mendorong / menarik antara TFS dan repositori Git lokal saya.

Masalah muncul karena beberapa file yang telah diubah namanya hanya untuk mengubah kasus mereka . Apa yang tampaknya terjadi adalah ini:

  • File-file diperiksa dengan casing campuran dalam nama mereka.
  • Dalam komit kemudian, nama file diubah menjadi huruf kecil semua.
  • git-tf awalnya mendapat file dalam case campuran.
  • Ketika file diganti nama menjadi huruf kecil, git-tf tidak mendapatkan file karena untuk Windows 8 nama file tersebut setara.
  • Karena Git peka terhadap huruf besar-kecil, ia mengeluh karena saya memiliki file huruf besar-kecil yang tidak dalam kontrol sumber. Tetapi menggunakan git status, saya tidak bisa melihat perubahan, karena di Windows command prompt nama-nama file itu setara.

Solusi paling sederhana bagi saya adalah:

  • git checkoutversi proyek sebelumnya, jauh sebelum file-file itu ditambahkan .
  • Kemudian git checkoutversi terbaru dari proyek, dengan casing file yang benar.
Ryan Lundy
sumber
+1 Saya dapat menggunakan git log pada cabang dan cabang saat ini untuk rebase untuk melihat kapan komit terjadi yang mengubah case; kemudian aku meretasnya ...
bijak
4

Dua fungsi ini (git rm --cached, git checkout -f cabang-lain) TIDAK bekerja untuk saya.

Sebagai gantinya, saya secara fisik menghapus file (dalam gerhana) seperti apa yang Git katakan agar Anda lakukan; Harap pindahkan atau hapus sebelum Anda dapat berganti cabang.

dan kemudian saya tambahkan / lakukan.

dan kemudian saya menarik dan berhasil!

In-young Choung
sumber
4

Dalam kasus saya, masalahnya adalah pada submodula. masterdigabung dengan cabang lain yang menambahkan submodule baru ke proyek. Cabang yang saya coba checkout tidak memilikinya, itu sebabnya git mengeluh tentang file yang tidak terlacak dan tidak ada solusi lain yang disarankan yang bekerja untuk saya. Saya memaksakan checkout ke cabang baru saya, dan menarik tuan.

  • git checkout -f my_branch
  • git pull origin master
  • git submodule update --init
Bruno Pinheiro
sumber
3

Dalam kasus saya git rm --cachedtidak berhasil. Tapi saya mendapatkannya dengangit rebase

Hillkorn
sumber
3

Saya juga menghadapi masalah serupa dan saya mencoba semua solusi yang diposting di atas tetapi tidak berhasil

Masalah ini disebabkan ketika saya berganti nama saya onMusicUpdateListener.javake OnMusicUpdateListener.javadalam developcabang.

Sekarang mastermemiliki onMusicUpdateListener.java dan developmemiliki file yang sama denganOnMusicUpdateListener.java

Sekarang setiap kali saya beralih ke master itu memberi saya kesalahan

The following untracked working tree files would be overwritten by checkout

dan kemudian aborted.

Untuk mengatasi ini, saya dengan paksa checked out mastercabang dan kemudian berganti nama onMusicUpdateListener.javamenjadi OnMusicUpdateListener.java, committeddan kemudian mergeddengan developcabang.

Kemudian saya memperbarui developcabang saya mergingmenjadi masterdan sekarang semuanya kembali normal dan masalah terpecahkan.

Sheraz Ahmad Khilji
sumber
Saya telah mengalami masalah serupa sebelumnya. Menurut pemahaman saya, masalah sensitivitas case tampaknya hanya menjadi masalah di windows. Saya kira Anda sedang mengembangkan di windows?
Ji_in_coding
2

Ini bisa menjadi masalah izin,

ubah kepemilikan,

sudo chown -v -R usr-name:group-name folder-name
Won Jun Bae
sumber
Saya juga memiliki masalah yang sama dengan Won. Saya menambahkan .gitignore ke folder yang sudah terlacak. Saya menghapus file dan kemudian dapat melakukan checkout git.
cbloss793
2

2 file dengan nama yang sama tetapi kasus yang berbeda mungkin menjadi masalah.

Anda dapat menghapus satu di file-file ini atau mengganti namanya. Ex:

Pdf.html.twig (The GOOD one)

pdf.html.twig (The one I deleted)
Samuel Vicent
sumber
2

Pindahkan file, bukannya dihapus

Salah satu cara untuk menghindari penghapusan file adalah dengan memindahkannya. Sebagai contoh:

cd "`git rev-parse --show-toplevel`"
git checkout 2>&1 | while read f; do [ ! -e "$f" ] || mv "$f" "$f".bak; done
gmatht
sumber
1

Jika Anda telah mengganti nama file secara lokal dan kemudian melakukan pull, itu akan menampilkan pesan kesalahan itu.

lyuboslav kanev
sumber
Bagaimana cara mengatasi kesalahan ini dalam kasus itu? Pesan ini juga muncul ketika berpindah cabang setelah mengganti case dalam nama file (MyFile => myfile).
Bernhard Döbler
1

itu mudah dipecahkan, git mengatakan bahwa Anda memiliki file yang sama di kedua cabang, oleh karena itu Anda harus menghapus file spesifik dari cabang master dan kemudian Anda akan dapat menggabungkan:

git menggabungkan "cabang Anda"

Saya harap ini berhasil untuk Anda, saya baru saja menyelesaikan kesalahan saya. kesalahan saya adalah:

galat: File pohon yang tidak terlacak berikut ini akan ditimpa oleh gabungan: .vs / slnx.sqlite Harap pindahkan atau hapus file-file tersebut sebelum Anda bergabung. Batalkan

Sekarang berhasil! Dalam kasus saya .vs / slnx.sqlite dibuat oleh visual studio, saya harus menutupnya sebelum menghapusnya.

jeirueda
sumber
0

Dalam kasus saya, saya melihat kesalahan ini karena saya menggunakan CMS open source yang populer dan direktori yang menyebabkan masalah adalah direktori unggahan yang ditulis oleh CMS.

Jadi apa yang dikatakannya adalah bahwa ada file yang tidak Anda miliki, tetapi Anda tidak bisa mendapatkannya dari versi.

Saya mengambil semua file dari situs langsung ke lokal saya, kemudian saya akan memeriksa ini ke dalam repo dengan harapan ini memperbaiki masalah.

Markosaurus
sumber
0

Hapus file .gitignore dari appname / gen / untuk menyelesaikan masalah ini.

vishnuc156
sumber
0

Saya hanya pergi ke sistem file dan menghapus file secara langsung, kemudian dilanjutkan dengan checkout git dan berhasil.

Saya pernah mengalami masalah ini beberapa kali dan mungkin terkait dengan pengembang yang menghapus, mendorong, menambah kembali, mendorong atau semacamnya.

Phil Carter
sumber
0

Sebagian besar jawaban mempertimbangkan menghapus atau menghapus file, yang merupakan cara mudah. Tetapi kadang-kadang Anda tidak ingin menyingkirkan file lokal. Tapi bergabung dengan strategi, jadi git punya solusi untuk ini juga;

git merge --strategy=ours master 
Erdinç Çorbacı
sumber
0

Hapus saja file atau ganti namanya.

misalnya

$ git pull
Enter passphrase for key '/c/Users/PC983/.ssh/id_rsa':
error: Your local changes to the following files would be overwritten by merge:
        ajax/productPrice.php
Please commit your changes or stash them before you merge.
error: The following untracked working tree files would be overwritten by merge:
        ajax/product.php
Please move or remove them before you merge.
Aborting
Updating a04cbe7a..6aa8ead5

Saya harus mengganti nama / menghapus ajax / product.php dan ajax / produtPrice.php .

Jangan khawatir, git pull akan membawa mereka kembali. Saya menyarankan Anda untuk mengganti nama mereka alih-alih menghapus, karena Anda mungkin kehilangan beberapa perubahan.

Jika ini tidak membantu, maka Anda harus menghapus seluruh Cabang dan membuatnya lagi lalu lakukan git pull origin remotebranch

Hitam
sumber
0

Untuk menyimpan file yang dimodifikasi dan menggunakan konten yang dimodifikasi nanti. Saya menemukan kesalahan ini ketika saya mencoba memeriksa cabang dan ketika mencoba untuk rebase. Coba Git simpanan

git stash

MöĦämëđ ÏbŗäĦïm
sumber
0

Periksa apakah ada nama folder yang memiliki '/' atau simbol khusus lalu ganti nama folder itu. Kemudian Anda hanya mengkloning repositori ke lokasi lain.

Pembuat kode
sumber
0

Solusi sederhana mungkin: Pastikan Anda berada di direktori kerja yang benar di GitBash. Pesan itu muncul hampir setiap kali jika Pengguna mencoba untuk menggabungkan direktori terlalu tinggi dalam hierarki foldernya.

Contoh:

/workspace/git/myBashSourceFolder/myProjectSourcefolder

Skenario: Pengguna mengkloning repo di git-folderia membuat Proyek Java baru di Eclipse, mengimpor repo yang dikloning. Eclipse mengatur myProjectSourceFolder sebagai Folder Sumber di Proyek lokalnya. oleh karena itu Pengguna memasukkannya di git bash dan mendorong, menarik dan melakukan proyeknya dari sana. git karena itu sync myProjectSourceFolder- tetapi tidak memiliki catatan dalam riwayatnya untuk myBashSourceFolder. Oleh karena itu push / pull / merge dari myBashSourceFolder akan menghasilkan output yang diberikan, jika Pengguna mencoba untuk menyinkronkan dari sana waktu berikutnya, bukan folder yang dia kerjakan sebelumnya.

Solusi: Masukkan Folder yang benar dan coba tarik lagi. Di hampir setiap kali saya temui, solusi ini bekerja dengan baik :)

mZed
sumber