জিআইটি ত্রুটি কীভাবে ঠিক করবেন: অবজেক্ট ফাইলটি খালি?


442

আমি যখন পরিবর্তনগুলি করার চেষ্টা করি তখন আমি এই ত্রুটিটি পাই:

error: object file .git/objects/31/65329bb680e30595f242b7c4d8406ca63eeab0 is empty
fatal: loose object 3165329bb680e30595f242b7c4d8406ca63eeab0 (stored in .git/objects/31/65329bb680e30595f242b7c4d8406ca63eeab0) is corrupt

এই ত্রুটিটি কীভাবে সমাধান করবেন?

সম্পাদনা

আমি চেষ্টা git fsckকরেছি আমি পেয়েছি:

error: object file .git/objects/03/dfd60a4809a3ba7023cbf098eb322d08630b71 is empty
fatal: loose object 03dfd60a4809a3ba7023cbf098eb322d08630b71 (stored in .git/objects/03/dfd60a4809a3ba7023cbf098eb322d08630b71) is corrupt

আপনি কি জোর করে কোনও git addঅপারেশন মেরেছিলেন ? আপনার হার্ড ডিস্ক পূর্ণ?
cdowie

না, আমার হার্ডডিস্কটি পূর্ণ নয়, আমার মনে নেই যে আমি একটি গিট অ্যাড অপারেশনকে জোর করে হত্যা করেছি, আমি যদি তা করতাম? আমি কীভাবে এটি সমাধান করতে পারি?
সিমো

কোন, ত্রুটি এখনও আছে ...
simo

2
যদি এই সংগ্রহস্থলটি দূরবর্তী সংগ্রহস্থলে উপস্থিত থাকে তবে আপনি যদি সেই দূরবর্তী সংগ্রহস্থলে উপস্থিত থাকেন তবে সেই ফাইলটি স্থানীয় লোকাল থেকে সেখান থেকে অনুলিপি করার চেষ্টা করতে পারেন।
আটিল্লা Szeremi

2
.Git ডিরেক্টরিতে আমার অনুমতিগুলি কোনওভাবে আপ্লুত হয়ে যায় এবং আমার পড়ার অ্যাক্সেস না থাকায় আমি এই ত্রুটিটি পেয়েছি। সুতরাং ফাইলগুলি খালি নয় এমন ক্ষেত্রে এটি ঘটতে পারে তবে সেগুলিতে কেবল লেখা যায় না। অনুমতি স্থির করা এবং চালানো git fsckএটির যত্ন নিয়েছিল।
জ্যাক অ্যান্ডারসন

উত্তর:


900

আমারও একই সমস্যা ছিল। গিট অপারেশনের সময় আমার ল্যাপটপটি ব্যাটারি থেকে সরে গেছে। বু।

আমার কোনও ব্যাকআপ নেই। (এনবি উবুন্টু ওয়ান গিটের ব্যাকআপ সলিউশন নয়; এটি আপনার দুর্নীতিগ্রস্থের সাহায্যে আপনার বুদ্ধিভিত্তিক সংগ্রহস্থলকে সহায়কভাবে ওভাররাইট করে দেবে))

গিট উইজার্ডদের কাছে, এটি যদি এটির সমাধানের কোনও খারাপ উপায় ছিল তবে দয়া করে একটি মন্তব্য দিন। এটি আমার পক্ষে কমপক্ষে সাময়িকভাবে কাজ করেছিল ...

পদক্ষেপ 1: .git এর ব্যাকআপ নিন (বাস্তবে আমি প্রতিটি পদক্ষেপের মধ্যে যা কিছু পরিবর্তন করে তবে এর মধ্যে একটি নতুন কপি-টু নাম সহ, যেমন .git-old-1, .git-old-2, ইত্যাদি) :

cp -a .git .git-old

পদক্ষেপ 2: চালান git fsck --full

nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git fsck --full
error: object file .git/objects/8b/61d0135d3195966b443f6c73fb68466264c68e is empty
fatal: loose object 8b61d0135d3195966b443f6c73fb68466264c68e (stored in .git/objects/8b/61d0135d3195966b443f6c73fb68466264c68e) is corrupt

পদক্ষেপ 3: খালি ফাইলটি সরান। আমি গ্রাহ্য করি না, মূর্ত; যাইহোক এটি ফাঁকা।

nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ rm .git/objects/8b/61d0135d3195966b443f6c73fb68466264c68e 
rm: remove write-protected regular empty file `.git/objects/8b/61d0135d3195966b443f6c73fb68466264c68e'? y

পদক্ষেপ 3: git fsckআবার চালান । খালি ফাইলগুলি মুছে ফেলা চালিয়ে যান। আপনি ডিরেক্টরিতেও cdপ্রবেশ করতে পারেন এবং সমস্ত খালি ফাইল অপসারণ করতে .gitচালাতে find . -type f -empty -delete -printপারেন। অবশেষে গিট আমাকে বলতে শুরু করল এটি বস্তুর ডিরেক্টরিগুলির সাথে আসলে কিছু করছে:

nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git fsck --full
Checking object directories: 100% (256/256), done.
error: object file .git/objects/e0/cbccee33aea970f4887194047141f79a363636 is empty
fatal: loose object e0cbccee33aea970f4887194047141f79a363636 (stored in .git/objects/e0/cbccee33aea970f4887194047141f79a363636) is corrupt

পদক্ষেপ 4: খালি সমস্ত ফাইল মুছে ফেলার পরে, আমি শেষ পর্যন্ত git fsckআসলে চলতে এসেছি :

nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git fsck --full
Checking object directories: 100% (256/256), done.
error: HEAD: invalid sha1 pointer af9fc0c5939eee40f6be2ed66381d74ec2be895f
error: refs/heads/master does not point to a valid object!
error: refs/heads/master.u1conflict does not point to a valid object!
error: 0e31469d372551bb2f51a186fa32795e39f94d5c: invalid sha1 pointer in cache-tree
dangling blob 03511c9868b5dbac4ef1343956776ac508c7c2a2
missing blob 8b61d0135d3195966b443f6c73fb68466264c68e
missing blob e89896b1282fbae6cf046bf21b62dd275aaa32f4
dangling blob dd09f7f1f033632b7ef90876d6802f5b5fede79a
missing blob caab8e3d18f2b8c8947f79af7885cdeeeae192fd
missing blob e4cf65ddf80338d50ecd4abcf1caf1de3127c229

পদক্ষেপ 5: চেষ্টা করুন git reflog। ব্যর্থ হওয়ায় আমার হেড ভেঙে গেছে।

nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git reflog
fatal: bad object HEAD

পদক্ষেপ:: গুগল। এটি সন্ধান করুন । ম্যানুয়ালি রিফলগের শেষ দুটি লাইন পান:

nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ tail -n 2 .git/logs/refs/heads/master
f2d4c4868ec7719317a8fce9dc18c4f2e00ede04 9f0abf890b113a287e10d56b66dbab66adc1662d Nathan VanHoudnos <nathanvan@gmail.com> 1347306977 -0400  commit: up to p. 24, including correcting spelling of my name
9f0abf890b113a287e10d56b66dbab66adc1662d af9fc0c5939eee40f6be2ed66381d74ec2be895f Nathan VanHoudnos <nathanvan@gmail.com> 1347358589 -0400  commit: fixed up to page 28

পদক্ষেপ:: নোট করুন যে Step ধাপ থেকে আমরা শিখেছি যে হেড বর্তমানে অত্যন্ত শেষ প্রতিশ্রুতিতে নির্দেশ করছে। সুতরাং আসুন কেবল পিতামাতার প্রতিশ্রুতি দেখার চেষ্টা করি:

nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git show 9f0abf890b113a287e10d56b66dbab66adc1662d
commit 9f0abf890b113a287e10d56b66dbab66adc1662d
Author: Nathan VanHoudnos <nathanvan@XXXXXX>
Date:   Mon Sep 10 15:56:17 2012 -0400

    up to p. 24, including correcting spelling of my name

diff --git a/tex/MCMC-in-IRT.tex b/tex/MCMC-in-IRT.tex
index 86e67a1..b860686 100644
--- a/tex/MCMC-in-IRT.tex
+++ b/tex/MCMC-in-IRT.tex

এটা কাজ করেছে!

পদক্ষেপ 8: সুতরাং এখন আমাদের 9AD0bf890b113a287e10d56b66dbab66adc1662d দিকে হেড নির্দেশ করতে হবে।

nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git update-ref HEAD 9f0abf890b113a287e10d56b66dbab66adc1662d

যা অভিযোগ করেনি।

পদক্ষেপ 9: দেখুন fsck কি বলে:

nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git fsck --full
Checking object directories: 100% (256/256), done.
error: refs/heads/master.u1conflict does not point to a valid object!
error: 0e31469d372551bb2f51a186fa32795e39f94d5c: invalid sha1 pointer in cache-tree
dangling blob 03511c9868b5dbac4ef1343956776ac508c7c2a2
missing blob 8b61d0135d3195966b443f6c73fb68466264c68e
missing blob e89896b1282fbae6cf046bf21b62dd275aaa32f4
dangling blob dd09f7f1f033632b7ef90876d6802f5b5fede79a
missing blob caab8e3d18f2b8c8947f79af7885cdeeeae192fd
missing blob e4cf65ddf80338d50ecd4abcf1caf1de3127c229

পদক্ষেপ 10: ক্যাশে-গাছের অবৈধ sha1 পয়েন্টারটি দেখে মনে হয়েছিল এটি কোনও (এখন পুরানো) সূচি ফাইল ( উত্স ) থেকে এসেছে। তাই আমি এটি মেরেছি এবং রেপো পুনরায় সেট করেছি।

nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ rm .git/index
nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git reset
Unstaged changes after reset:
M   tex/MCMC-in-IRT.tex
M   tex/recipe-example/build-example-plots.R
M   tex/recipe-example/build-failure-plots.R

পদক্ষেপ 11: আবার fsck তাকানো ...

nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git fsck --full
Checking object directories: 100% (256/256), done.
error: refs/heads/master.u1conflict does not point to a valid object!
dangling blob 03511c9868b5dbac4ef1343956776ac508c7c2a2
dangling blob dd09f7f1f033632b7ef90876d6802f5b5fede79a

আনত ব্লব ত্রুটি নয় । আমি মাস্টার.ইউ কনফ্লিক্টের সাথে সম্পর্কিত নই, এবং এখন এটি কাজ করছে বলে আমি আর এটি স্পর্শ করতে চাই না!

পদক্ষেপ 12: আমার স্থানীয় সম্পাদনাগুলি ধরা হচ্ছে:

nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   tex/MCMC-in-IRT.tex
#   modified:   tex/recipe-example/build-example-plots.R
#   modified:   tex/recipe-example/build-failure-plots.R
#
< ... snip ... >
no changes added to commit (use "git add" and/or "git commit -a")


nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git commit -a -m "recovering from the git fiasco"
[master 7922876] recovering from the git fiasco
 3 files changed, 12 insertions(+), 94 deletions(-)

nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git add tex/sept2012_code/example-code-testing.R
nathanvan@nathanvan-N61Jq:~/workspace/mcmc-chapter$ git commit -a -m "adding in the example code"
[master 385c023] adding in the example code
 1 file changed, 331 insertions(+)
 create mode 100644 tex/sept2012_code/example-code-testing.R

সুতরাং আশা করি ভবিষ্যতে এটি কিছু উপকারে আসতে পারে। আমি আনন্দিত এটি কাজ করে।


86
সমস্ত পদক্ষেপ এবং সমস্ত একসাথে দুর্দান্ত উত্তর। আমি মনে করি আপনি আমাকে প্রত্যেককে গুগল করা থেকে বাঁচিয়েছেন!
Zlatko

24
মোহন মত কাজ! আমি আশা করি আমি এই একাধিকবার
উত্সাহ দিতে পারতাম

1
হুম, আমার ল্যাপটপটি গিটার অপারেশনের সময় মারা গিয়েছিল (স্পার্কলশেয়ার আমার নোটগুলি মারা যাওয়ার সাথে সাথে প্রতিশ্রুতি দেওয়ার চেষ্টা করছিল) এবং এর পরে রেপো এইভাবে দুর্নীতিগ্রস্থ হয়েছিল। আমি আপনার পদক্ষেপগুলি 6 অবধি অনুসরণ করেছি তবে মনে হচ্ছে শেষের বেশ কয়েকটি কমিটি আসলে আমি যে মুছে ফেলা খালি বস্তু ফাইলগুলির অংশ হতে পারি? আসলে সর্বশেষ 3 টি কমিটগুলি মূলত সম্পূর্ণরূপে ভেঙে গেছে তাই আমি অনুমান করি যে আমি করার মতো কিছুই ছিল না। ভাগ্যক্রমে আমার স্পার্কলশেয়ার থেকে পৃথক কমিটের প্রয়োজন নেই এবং আমি কেবল একটি মেশিন থেকে অন্য মেশিনে নোংরা ফাইলটি অনুলিপি করতে এবং মার্জ করতে পারি।
ইব্রাহিম

14
দুর্দান্ত, দুর্দান্ত উত্তর। বিশেষত প্রতিটি পদক্ষেপের পিছনে আপনার যুক্তি যুক্ত করার জন্য ধন্যবাদ। আপনি আমার রেপো সংরক্ষণ করেছেন! (ঠিক আছে, fsck থেকে আমার এখনও একটি 'রেফ / হেড / মাস্টারের জন্য খারাপ রেফারেন্স আছে' তবে এটি তুলনামূলক হালকা))
জন কার্টার

3
ধন্যবাদ, আমি কিছু গিট কার্যকারিতা সম্পর্কে অনেক কিছু শিখেছি যখন একটি গুরুত্বপূর্ণ প্রতিশ্রুতিতে আমার বেকনও সংরক্ষণ করে! কাকতালীয়ভাবে এটি ল্যাপটপে ব্যাটারি কম থাকার কারণেও হয়েছিল।
হার্বিয়ুক

195

গিট অবজেক্ট ফাইলগুলি দুর্নীতিগ্রস্থ হয়ে গেছে (অন্যান্য উত্তরে যেমন উল্লেখ করা হয়েছে)। এটি মেশিন ক্রাশ ইত্যাদির সময় ঘটতে পারে

আমার একই জিনিস ছিল। এখানে অন্যান্য শীর্ষস্থানীয় উত্তরগুলি পড়ার পরে আমি নিম্নলিখিত কমান্ডগুলির সাথে ভাঙা গিট সংগ্রহস্থলটি ঠিক করার দ্রুততম উপায়টি খুঁজে পেয়েছি ( .gitফোল্ডারটি ধারণ করে এমন গিট ওয়ার্কিং ডিরেক্টরিতে এক্সিকিউট করুন ):

(আপনার গিট সংগ্রহস্থল ফোল্ডারের প্রথমে ব্যাকআপ নিশ্চিত করুন!)

find .git/objects/ -type f -empty | xargs rm
git fetch -p
git fsck --full

এটি প্রথমে কোনও খালি অবজেক্ট ফাইলগুলি মুছে ফেলবে যা সামগ্রিকভাবে সংগ্রহস্থলের দুর্নীতির কারণ হয়ে যায় এবং তারপরে রিমোট রিপোজিটরি থেকে নিখোঁজ হওয়া অবজেক্টগুলি (পাশাপাশি সর্বশেষ পরিবর্তনগুলি) নেবে এবং তারপরে একটি সম্পূর্ণ অবজেক্ট স্টোর চেক করবে । যা, এই সময়ে, কোনও ত্রুটি ছাড়াই সফল হওয়া উচিত (যদিও এখনও কিছু সতর্কতা থাকতে পারে!)

পুনশ্চ. এই জবাবটি সূচিত করে যে আপনার কোথাও আপনার গিট সংগ্রহস্থলের একটি রিমোট কপি রয়েছে (যেমন গিটহাবের উপরে) এবং ভাঙ্গা সংগ্রহস্থলটি স্থানীয় সংগ্রহস্থল যা রিমোট রিপোজিটরিতে আবদ্ধ থাকে যা এখনও কৌশল অবলম্বনে রয়েছে। যদি এটি না হয়, তবে আমার প্রস্তাব অনুসারে এটি ঠিক করার চেষ্টা করবেন না।


এর জন্য ধন্যবাদ, আমি বেশ ধর্মীয়ভাবে আমার দূরবর্তী শাখাগুলিতে চাপ দিচ্ছি এবং আপনার সমাধান আমার পক্ষে কাজ করেছে। আমি প্রথমে @ এমকারর এর নীচে চেষ্টা করেছি কিন্তু আমি নতুন ফাইলগুলি প্রতিশ্রুতিবদ্ধ করার পরে রেপো দুর্নীতিগ্রস্থ হয়ে ফিরে গেছে। এই পদ্ধতির সমাধান হয়েছে
mr_than

বেশিরভাগেরই যেমন রিমোট থাকে। এই সমাধানটি সত্যই পরিষ্কার এবং পর্যাপ্ত।
জ্যাকআফএল সমস্ত

7
কোনও ভিএম বন্ধ করার পরে এই সমস্যা হয়েছিল যার মধ্যে আমি গিট রেপো নিয়ে কাজ করছিলাম। এই সমাধানটি নিখুঁতভাবে কাজ করেছে।
গিসকার্ড বিয়াম্বি

ধন্যবাদ মার্টিন, দুর্দান্ত এবং কমপ্যাক্ট সমাধান। যদিও আমি নিখরচায় ব্যবহারকারীদের একটি সুনির্দিষ্ট-স্থানীয় সেটআপে একইরকম চেষ্টা করা থেকে বিরত রাখতে সাহসী হুঁশিয়ারি দিয়ে এই পিএসটিকে প্রথমে রেখেছি। গিসকার্ডের মতো, ভিএমএম বন্ধ করার সময় এটি আমার জন্য উদ্ভূত ... প্রতিবার এটি করার চেয়ে যদি আমি আরও স্থায়ী সমাধান পাই তবে আপডেট হবে will
thclark

2
একজন ভিএম ক্রাশ আমার স্থানীয় গিট রেপোতেও এটি করেছে, আমি নিশ্চিত করতে পারি যে এই সমাধানটি এই ক্ষেত্রে 100% কাজ করছে
আমিন.টি

35

আমি যখন আমার প্রতিশ্রুতিটি চাপছি এবং আমার কম্পিউটারটি স্তব্ধ হয়ে যায় তখন আমার কাছে এই ত্রুটি ঘটে। এইভাবে আমি এটি ঠিক করেছি


ঠিক করার পদক্ষেপ

git status

খালি / দূষিত বস্তু ফাইলটি দেখান

rm .git/objects/08/3834cb34d155e67a8930604d57d3d302d7ec12

এটা মুছুন

git status

আমি fatal: bad object HEADবার্তা পেয়েছি

rm .git/index

আমি indexরিসেটের জন্য অপসারণ

git reset

মারাত্মক: 'HEAD' অবজেক্টটি পার্স করা যায়নি।

git status
git pull

শুধু কি ঘটছে তা যাচাই করার জন্য

tail -n 2 .git/logs/refs/heads/MY-CURRENT-BRANCH

tail -n 2আমার শেষ 2 দেখানোর জন্য লগ শাখার শেষ 2 লাইন মুদ্রণ করেcommit hash

git update-ref HEAD 7221fa02cb627470db163826da4265609aba47b2

আমি শেষ বাছাই commit hash

git status

আমার সমস্ত ফাইল দেখায় deletedকারণ আমি .git/indexফাইলটি সরিয়েছি

git reset

পুনরায় সেট করতে চালিয়ে যান

git status

আমার ফিক্স যাচাই করুন


দ্রষ্টব্য: পদক্ষেপগুলি যখন আমি এই প্রশ্নটিতে অবতরণ করি এবং উত্তরগুলি রেফারেন্স হিসাবে ব্যবহার করি তখন শুরু হয়।


34

Git fsck সনাক্ত করা বিভিন্ন খালি ফাইলগুলি সরিয়ে আমি এটি সমাধান করেছি এবং তারপরে একটি সাধারণ গিট টান চালাচ্ছি।

আমি হতাশাবোধ করি যে এখন ফাইল সিস্টেমগুলিও জার্নালিং এবং অন্যান্য "ট্রানজেকশনাল" কৌশলগুলি এফএসকে বুদ্ধিমান রাখার জন্য, গিটটি দুর্নীতিগ্রস্থ অবস্থায় পৌঁছে যেতে পারে (এবং নিজেই পুনরুদ্ধার করতে সক্ষম হবে না) কারণ বিদ্যুতের ব্যর্থতা বা ডিভাইসে স্থানের কারণে।


3
আমি নিশ্চিত যে উপরের উত্তরটি প্রযুক্তিগতভাবে আরও ভাল, তবে এটি 6 ধাপে কাজ করা বন্ধ করে দিয়েছিল এবং প্রযুক্তিগতভাবে আমার মাথার উপরে ছিল। সমীচীন পদ্ধতির গিট টান
এমব্ল্যাকওয়েল 8

2
আমি এমন পরিস্থিতির মুখোমুখি হয়েছি যেখানে নাথানের উত্তর (যা দুর্দান্ত কাজ করেছে!) থেকে নির্দেশের 1-11 পদক্ষেপগুলি করার পরে আমার একটি ত্রুটি হয়েছিল যা বলছিল যে রেফ / উত্স / মাস্টার এবং রেফস / উত্স / মাথা সংজ্ঞায়িত হয়নি (বা এর মতো কিছু) যে)। গিট টান যে স্থির। সুতরাং আমি মনে করি উভয় সমাধান একসাথে কাজ করে।
bchurchill

2
আমি সচেতন যে ব্যবহৃত ফাইল সিস্টেমগুলি সাধারণত মেটা-ডেটা জার্নাল করে। আপনি ডেটাটির জন্যও জার্নালিং চালু করতে পারেন, তবে আমি অনুমান করি যে এটি ওভারহেড (?) এর কারণে এটি ডিফল্ট নয় কারণ সম্ভবত ফাইলগুলি খালি ছিল .... এবং ফাইল সিস্টেমগুলি সাধারণত প্রতি ফাইল প্রতি লেনদেন পালন করে, অন্যদিকে গিটটিতে একাধিক ফাইল সংশোধন করা হচ্ছে প্রতি লেনদেন, এইভাবে যদি fs ফাইল প্রতি ফাইলের ধারাবাহিকতা বজায় রাখে, যদি গিট না দেয় তবে আমার ধারণা
গিটটি

এই উত্তরটি আমার পক্ষে কাজ করেছে, অন্যরা জটিলতার উপায়।
ldog

1
গৃহীত উত্তরের চেয়ে দ্রুত সমাধান। এই পর্যন্ত স্ক্রোল করা প্রত্যেককে, আপনি যদি খুব তাড়াতাড়ি থাকেন তবে এই উত্তরটি অনুসরণ করুন।
শ্রী হর্ষ কাপালা

9

আমার ঠিক একই সমস্যা ছিল: দূরবর্তী সংগ্রহস্থলটি টান দেওয়ার পরে, যখন আমি গিট স্ট্যাটাসটি পেয়েছিলাম: "ত্রুটি: অবজেক্ট ফাইল (...) খালি" "মারাত্মক: আলগা বস্তু (...) দূষিত"

আমি যেভাবে সমাধান করেছি তা হ'ল:

  1. গিট স্ট্যাশ
  2. ত্রুটিযুক্ত গিট ফাইল সরানো (নিশ্চিত যে এটি প্রয়োজনীয়)
  3. গিট স্ট্যাশ ক্লিয়ার

জিনিসগুলি ঠিক কী ঘটেছে তা আমি জানি না, তবে সেই নির্দেশাবলিগুলি সমস্ত কিছু পরিষ্কার করে দিয়েছে বলে মনে হয়েছিল।


2
আমি সর্বদা সহজ উত্তরগুলি পছন্দ করি :) দ্বিতীয় ধাপের জন্য আমি এখানে @ নাথান ভ্যানহাউডনোসের জবাব প্রদত্ত কমান্ডটি ব্যবহার করেছি:cd .git/ && find . -type f -empty -delete
mopo922

8

কারণ আমাকে নিয়মিত আমার ভিএম পুনরায় চালু করতে হয়, তাই কোনও না কোনওভাবে এই সমস্যাটি আমার প্রায়শই ঘটে। এর কয়েকবারের পরে, আমি বুঝতে পেরেছিলাম যে প্রতিবারই এটি ঘটে নাথন-ভ্যানহাউডনোস দ্বারা বর্ণিত প্রক্রিয়াটির পুনরাবৃত্তি করতে পারি না, যদিও এটি সর্বদা কার্যকর হয়। তারপরে আমি নিম্নলিখিত দ্রুত সমাধানটি বের করেছিলাম।

ধাপ 1

আপনার সম্পূর্ণ রেপো অন্য ফোল্ডারে সরান।

mv current_repo temp_repo

ধাপ ২

উত্স থেকে পুনরায় ক্লোন করুন।

git clone source_to_current_repo.git

ধাপ 3

.Git ফোল্ডার ব্যতীত নতুন রেপোর নীচে সমস্ত কিছুই সরান ।

পদক্ষেপ 4

সরান সবকিছু থেকে temp_repo নতুন রেপো থেকে ছাড়া .git ফোল্ডার।

পদক্ষেপ 5

টেম্প_রেপো সরান , এবং আমরা সম্পন্ন করেছি।

কয়েকবার পরে, আমি নিশ্চিত আপনি খুব দ্রুত এই পদ্ধতিগুলি করতে পারবেন।


2
বা আপনার বর্তমান রেপো সরান না, 1) একটি নতুন ক্লোন তৈরি করুন git clone source_to_current_repo.git clean_repo, 2) পুরানো .git ফোল্ডারটি ব্যাকআপ করুন, 3) পরিষ্কার .git ফোল্ডারে অনুলিপি করুন।
মোই

তুমি ঠিক. আমি ইতিমধ্যে এখন এটি করেছি। উত্তরটি পরে সম্পাদনা করবে।
হাওকিয়াং

@ হাওকিয়াং: আপনি লিখেছেন "যেহেতু আমাকে নিয়মিত আমার ভিএম পুনরায় চালু করতে হয়, তাই কোনওভাবেই আমার কাছে এই সমস্যাটি প্রায়শই ঘটে" " আমরা একই অভিজ্ঞতা। আপনি মূল কারণটি সম্পর্কে কোনও অগ্রগতি করেছেন - ভিএম সেটিংস যা সমস্যার কম ঘন ঘন ঘটায়?
হ্যান্সফন

6
  1. করতে ব্যাকআপ, অর্থাৎ এমভি আপনার ফোল্ডারের অ্যাপ্লিকেশন এমভি app_folder app_folder_bk (এটি একটি মত হল Git লুকোবার জায়গা )
  2. গিট ক্লোন আপনার_রেপোসিটিরি
  3. অবশেষে ,. একটি মার্জ সরঞ্জাম খুলুন (আমি মেল্ড ডিফ ভিউয়ার লিনাক্স বা উইনমার্জ উইন্ডোজ ব্যবহার করি) এবং ডান ( অ্যাপ_ফোল্ডার_বি কে ) থেকে বামে (নতুন অ্যাপ্লিকেশন_ফোল্ডার ) পরিবর্তনগুলি অনুলিপি করুন (এটি গিট স্ট্যাশ প্রয়োগের মতো )।

এখানেই শেষ. হতে পারে এটি সর্বোত্তম উপায় নয় তবে আমি মনে করি এটি এত ব্যবহারিক।


1
আপনার যখন সমস্ত স্থানীয় পরিবর্তনগুলি একটি প্রবাহে প্রবাহিত করা হয়, বা পরিবর্তনগুলি সর্বনিম্ন হয়, তখন আপনার ক্লোনিংটি পুনরুদ্ধারের চেয়ে দ্রুত হয় you
মি 無

3

আমার ক্ষেত্রে, এই ত্রুটিটি ঘটেছে কারণ আমি প্রতিশ্রুতি বার্তাটি টাইপ করছিলাম এবং আমার নোটবুকটি বন্ধ ছিল।

ত্রুটিটি ঠিক করতে আমি এই পদক্ষেপগুলি করেছি:

  • git checkout -b backup-branch # একটি ব্যাকআপ শাখা তৈরি করুন
  • git reset --hard HEAD~4# প্রতিশ্রুতিতে পুনরায় সেট করুন যেখানে সবকিছু ভালভাবে কাজ করে। আমার ক্ষেত্রে, আমাকে মাথার মধ্যে 4 টি প্রতিশ্রুতি ফিরে আসতে হয়েছিল, এটি প্রতিশ্রুতি বার্তাটি টাইপ করার আগে আমার মাথা বিন্দুতে না আসা পর্যন্ত। এই পদক্ষেপটি করার আগে, আপনি পুনরায় সেট করা কমিটগুলির হ্যাশটি অনুলিপি করুন, আমার ক্ষেত্রে আমি সর্বশেষ 4 টি কমিটের হ্যাশ অনুলিপি করেছি
  • git cherry-pick <commit-hash> # চেরি পুনরায় সেট করা কমিটগুলি চয়ন করুন (আমার ক্ষেত্রে 4 টি কমিট রয়েছে, তাই আমি 4 বার এই পদক্ষেপটি করেছি) পুরানো শাখা থেকে নতুন শাখায়।
  • git push origin backup-branch # সবকিছু ভালভাবে কাজ করছে তা নিশ্চিত হওয়ার জন্য নতুন শাখাটি পুশ করুন
  • git branch -D your-branch # স্থানীয়ভাবে শাখাটি মুছুন ('আপনার শাখাটি' সমস্যাযুক্ত শাখা)
  • git push origin :your-branch # দূরবর্তী থেকে শাখাটি মুছুন
  • git branch -m backup-branch your-branch # যে শাখায় সমস্যা ছিল তার নাম রাখতে ব্যাকআপ শাখার নাম পরিবর্তন করুন
  • git push origin your-branch # নতুন শাখা পুশ করুন
  • git push origin :backup-branch # রিমোট থেকে ব্যাকআপ শাখা মুছুন

3
git stash
git checkout master
cd .git/ && find . -type f -empty -delete
git branch your-branch-name -D
git checkout -b your-branch-name
git stash pop

আমার সমস্যা সমাধান করুন


এই সাহায্য করেছে। ধন্যবাদ.
swateek

রেপো যদি পরিষ্কার থাকে তবে আপনাকে কেবল "সিডি .গিট / && সন্ধান করতে হবে ty টাইপ-এফম্পিটি -ডিলিট && সিডি - && গিট পুল", আপনার কিছু ফাইল git statusখালি থাকার কারণে চেকআউট করার প্রয়োজন হতে পারে ।
কোডিচান

2

এই সমস্যাটি মোকাবেলার জন্য এখানে একটি খুব সহজ এবং দ্রুত উপায় যদি আপনার সমস্ত শাখাগুলির সাথে একটি স্থানীয় রেপো থাকে এবং আপনার প্রয়োজনের প্রতিশ্রুতি দেয় এবং যদি আপনি একটি নতুন রেপো তৈরির ক্ষেত্রে ঠিক থাকেন (অথবা সার্ভারের রেপো মুছে ফেলুন এবং একটি নতুন তৈরি করুন) এটির জায়গায়):

  1. সার্ভারে একটি নতুন খালি রেপো তৈরি করুন (বা পুরাতন রেপো মুছুন এবং তার জায়গায় একটি নতুন তৈরি করুন)
  2. নতুন রেপোর দূরবর্তী URL এ নির্দেশ করতে আপনার স্থানীয় অনুলিপিটির দূরবর্তী URL পরিবর্তন করুন URL
  3. আপনার স্থানীয় রেপো থেকে নতুন সার্ভার রেপোতে সমস্ত শাখা পুশ করুন।

এটি আপনার স্থানীয় রেপোতে সমস্ত প্রতিশ্রুতিবদ্ধ ইতিহাস এবং শাখা সংরক্ষণ করে।

আপনার রেপোতে যদি সহযোগী থাকে তবে আমি মনে করি আপনার ক্ষেত্রে অনেক সহযোগী তাদের স্থানীয় রেপোর দূরবর্তী URL পরিবর্তন করতে হবে এবং সার্ভারের কাছে নেই এমন কোনও কমিটিকে optionচ্ছিকভাবে চাপ দিতে হবে।

আমি যখন এই একই সমস্যার মধ্যে এসেছি তখন এই সমাধানটি আমার পক্ষে কাজ করেছিল। আমার একজন সহযোগী ছিল। আমি আমার স্থানীয় রেপোটিকে নতুন রিমোট রেপোতে ঠেলে দেওয়ার পরে, তিনি কেবলমাত্র তার স্থানীয় রেপো পরিবর্তন করে দূরবর্তী রেপো ইউআরএলটিতে নির্দেশ করলেন এবং সবকিছু ঠিকঠাক কাজ করেছিল।


2

আমি ধরে নিচ্ছি যে আপনার কাছে ইতিমধ্যে এটি সম্পর্কিত সমস্ত প্রাসঙ্গিক পরিবর্তন সহ একটি রিমোট রয়েছে। আমি স্থানীয় পরিবর্তনগুলি সম্পর্কে চিন্তা করি না এবং কেবল একটি বৃহত সংগ্রহস্থল মুছতে এবং পুনরায় সংস্থান এড়াতে চাইতাম। আপনার যদি গুরুত্বপূর্ণ স্থানীয় পরিবর্তন হয় তবে আপনি আরও যত্নবান হতে পারেন।

আমার ল্যাপটপ ক্র্যাশ হওয়ার পরেও আমার একই সমস্যা ছিল। সম্ভবত এটি একটি বিশাল সংগ্রহস্থল হওয়ায় আমার কাছে বেশ কয়েকটি দুর্নীতিগ্রস্থ অবজেক্ট ফাইল ছিল, যা কল করার সময় কেবল একবারে উপস্থিত হয়েছিল git fsck --full, তাই আমি সেগুলির একটি স্বয়ংক্রিয়ভাবে মুছতে একটি ছোট শেল ওয়ান-লাইন লিখেছিলাম:

$ sudo rm `git fsck --full 2>&1 | grep -oE -m 1 ".git/objects/[0-9a-f]{2}/[0-9a-f]*"`

  • 2>&1 এটিকে গ্রেপ করতে সক্ষম হওয়ার জন্য ত্রুটি বার্তাকে পুনরায় ডাইরেক্ট করে
  • গ্রেপ বিকল্পগুলি ব্যবহৃত:
    • -o কেবল একটি লাইনের অংশটি প্রত্যাবর্তন করে যা আসলে মেলে
    • -E উন্নত regexes সক্ষম করে
    • -m 1 প্রথম ম্যাচটি ফিরে এসেছে তা নিশ্চিত করুন
    • [0-9a-f]{2} 0 এবং 9 এবং a এবং f এর মধ্যে যে কোনও একটি অক্ষরের সাথে মিল রয়েছে যদি সেগুলির দুটি এক সাথে ঘটে
    • [0-9a-f]* 0 এবং 9 এবং a এবং f এর মধ্যে যে কোনও একটি অক্ষরের সাথে মিল রয়েছে together

এটি এখনও একবারে কেবল একটি ফাইল মুছবে, তাই আপনি এটিকে একটি লুপে কল করতে চাইতে পারেন:

$ while true; do sudo rm `git fsck --full 2>&1 | grep -oE -m 1 ".git/objects/[0-9a-f]{2}/[0-9a-f]*"`; done

এটির সাথে সমস্যাটি হ'ল এটি আর কোনও উপকারী জিনিস আউটপুট দেয় না তাই এটি শেষ হয়ে গেলে আপনি জানেন না (এটি কিছু সময়ের পরে দরকারী কিছু করা উচিত নয়)

এটি "সংশোধন" করতে আমি তখন git fsck --fullপ্রতিটি রাউন্ডের পরে কেবল একটি কল যুক্ত করেছি: $ while true; do sudo rm `git fsck --full 2>&1 | grep -oE -m 1 ".git/objects/[0-9a-f]{2}/[0-9a-f]*"`; git fsck --full; done

এটি এখন প্রায় অর্ধেক দ্রুত, তবে এটি "রাজ্য" আউটপুট দেয়।

এর পরে আমি এই থ্রেডের পরামর্শ নিয়ে কিছুটা খেললাম এবং অবশেষে এমন একটি পয়েন্টে পৌঁছে গেলাম যেখানে আমি পেরেছি git stashএবং git stash dropপ্রচুর ভাঙা জিনিস।

প্রথম সমস্যার সমাধান

এরপরে আমার তখনও নিম্নলিখিত সমস্যাটি ছিল: unable to resolve reference 'refs/remotes/origin/$branch': reference brokenযা দিয়ে সমাধান করা যেতে পারে $ rm \repo.git\refs\remotes\origin\$branch

$ git fetch

আমি তখন ক $ git gc --prune=now

$ git remote prune origin

ভাল পরিমাপের জন্য এবং

git reflog expire --stale-fix --all

error: HEAD: invalid reflog entry $blubbচলমান যখন পরিত্রাণ পেতে git fsck --full


2

আসুন সরল হয়ে উঠুন .. কেবলমাত্র যদি আপনি দূরবর্তী গিট রেপোতে উত্স আপলোড করেন

  1. আপনার .git ব্যাকআপ করুন
  2. আপনার গিট পরীক্ষা করুন

    git fsck --full
    
  3. খালি অবজেক্ট ফাইল সরান (সমস্ত)

    rm .git/objects/8b/61d0135d3195966b443f6c73fb68466264c68e
    
  4. আপনার গিট আবার পরীক্ষা করুন।

    git fsck --full
    
  5. দূরবর্তী গিট থেকে আপনার উত্স টানুন

    git pull origin master
    

2

ভার্চুয়াল মেশিনের সাহায্যে আমি এই সমস্যায় পড়েছি।

আমার জন্য নিম্নলিখিত কাজগুলি:

cd /path/to/your/project
rm -rf .git

আপনি যদি নিজের কিছু ডাউনলোড সংরক্ষণ করতে চান - আপনার ফাইল এক্সপ্লোরারটিতে যান এবং ইতিমধ্যে প্রতিশ্রুতিবদ্ধ ফোল্ডারে থাকা সমস্ত ফাইল মুছুন এবং আপনার / বিক্রেতা এবং / নোড_মডিউলগুলিতে (আমি সুরকার এবং এনপিএম) ফোল্ডারগুলিতে রেখে যান।

তারপরে একটি নতুন রেপো তৈরি করুন

git init

আপনার দূরবর্তী যুক্ত করুন

git remote add origin ssh://git@github.com/YourUsername/repoName.git

এবং শাখা / এটির সমস্ত আনুন

git fetch origin somebranch

এবং এটি পরীক্ষা করে দেখুন

git checkout somebranch

তাহলে আপনার ত্রুটির আগে বিন্দুতে থাকা উচিত।

আশাকরি এটা সাহায্য করবে.

শুভেচ্ছা।


1

আমি একই সমস্যার মুখোমুখি হয়েছি এবং আমি এটি ঠিক করার জন্য খুব সহজ উপায় ব্যবহার করি। আমি খুঁজে পেয়েছি যে এই অনুপস্থিত ফাইলগুলি আমার সতীর্থের কম্পিউটারে বিদ্যমান ছিল।

আমি এই ফাইলগুলি একের পর এক গিট সার্ভারে (মোট 9 টি ফাইল) অনুলিপি করেছি এবং এটি সমস্যার সমাধান করেছে।


1

আমি এবং আমার সহকর্মীরা এই একই সমস্যাটি নিয়ে বেশ কয়েকবার অতিক্রম করেছি এবং এটি সমাধান করার জন্য আমরা নীচে বর্ণিত পদক্ষেপগুলি সহজভাবে করি। এটি সর্বাধিক মার্জিত সমাধান নয় যা খুঁজে পাওয়া যায় তবে এটি ডেটা ক্ষতি ছাড়াই কাজ করে।

  1. বর্তমান ওয়ার্কিং ডিরেক্টরিটির নতুন নাম দিন। (old_project এই উদাহরণের জন্য)।
  2. নতুন ডিরেক্টরি ব্যবহার করে সংগ্রহস্থলটিকে ক্লোন করুন git clone
  3. কমান্ড লাইনে, কার্যনির্বাহী ডিরেক্টরিটি নতুন নির্মিত প্রকল্পে পরিবর্তন করুন এবং আপনি যে শাখায় কাজ করছেন সেটিতে স্যুইচ করুন।
  4. এর মধ্যে সমস্ত ফাইল এবং ডিরেক্টরি অনুলিপি করুন old_project(বাদে.git ) সদ্য নির্মিত প্রকল্প ডিরেক্টরিতে ।
  5. আপনার কাজের গাছের স্থিতি পরীক্ষা করুন (নোট করুন যে আপনি প্রত্যাশার চেয়ে অনেক বেশি পরিবর্তন হয়েছে) এবং তারপরে পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ।

আমি আসা করি এটা সাহায্য করবে...


1

Github.com- এ আপনার পাবলিক রেপো যদি কাজ করে তবে সমস্যাটি সমাধান করার একটি উপায় এখানে রয়েছে, তবে আপনার স্থানীয় রেপোটি দূষিত। সচেতন থাকুন যে আপনি স্থানীয় রেপোতে যে সমস্ত প্রতিশ্রুতি করেছেন তা আপনি শিথিল করবেন।

ঠিক আছে, সুতরাং আমার কাছে স্থানীয়ভাবে একটি রেপো রয়েছে যা আমাকে এটি দিচ্ছে object empty error, এবং গিথুব ডটকমে একই রেপো, তবে এই ত্রুটি ছাড়াই। তাই আমি যা করেছি তা হ'ল গিথুব থেকে কাজ করা রেপো ক্লোন করা এবং তারপরে দুর্নীতিগ্রস্ত রেপো থেকে সমস্ত কিছু অনুলিপি করা (.git ফোল্ডার ব্যতীত), এবং এটি কাজ করছে এমন ক্লোন রেপো আটকে দিন।

এটি ব্যবহারিক সমাধান নাও হতে পারে (যেহেতু আপনি স্থানীয় কমিটগুলি মুছবেন) তবে আপনি কোড এবং একটি সংস্কারকৃত সংস্করণ নিয়ন্ত্রণ বজায় রাখবেন।

এই পদ্ধতির প্রয়োগের আগে ব্যাক-আপ করতে ভুলবেন না।


1

আমার ক্ষেত্রে, স্থানীয় প্রতিশ্রুতিবদ্ধ ইতিহাস রাখা আমার পক্ষে গুরুত্বপূর্ণ ছিল না। সুতরাং এটি যদি আপনার ক্ষেত্রেও প্রযোজ্য হয়, আপনি উপরের সমাধানগুলির দ্রুত বিকল্প হিসাবে এটি করতে পারেন:

আপনি মূলত কেবল .git/একটি বিশুদ্ধ ডিরেক্টরি দিয়ে দূষিত ডিরেক্টরিটি প্রতিস্থাপন করুন ।

দূষিত গিট সহ আপনার প্রকল্পের জন্য নিম্নলিখিত ডিরেক্টরিটি ধরে নেওয়া যাক: projects/corrupt_git/

  1. cp projects/corrupt_git projects/backup - (alচ্ছিক) একটি ব্যাকআপ নিন
  2. git clone [repo URL] projects/clean_git - যাতে আপনি পান projects/clean_git
  3. rm -rf corrupt_git/.git/ - দূষিত .git ফোল্ডারটি সরান
  4. mv clean_git/.git/ corrupt_git/ - ক্লিন গিট এ যান corrupt_git/.git
  5. git statusএটি projects/corrupt_git- এটি কাজ করেছে তা নিশ্চিত করার জন্য

0

সমস্ত কিছু (.git সমেত ফোল্ডারে) অনুলিপি করে ব্যাকআপ করুন, তারপরে সবকিছু মুছুন এবং পুনরায় চালু করুন। নিশ্চিত করুন যে আপনার কাছে গিটের রিমোট সুবিধা রয়েছে:

git remote -v
 origin git@github.com:rwldrn/idiomatic.js.git (fetch)
 origin git@github.com:rwldrn/idiomatic.js.git (push)

তারপর

mkdir mygitfolder.backup
cp mygitfolder/* mygitfolder.backup/
cd mygitfolder
rm -r * .git*
git init
git remote add origin git@github.com:rwldrn/idiomatic.js.git

তারপরে যেকোন নতুন ফাইল ম্যানুয়ালি মার্জ করুন এবং আপনার কম্পিউটারটি চালু রাখার চেষ্টা করুন।


rm -rf * এর খুব খারাপ পরিণতি হতে পারে। আপনি কি আসলেই তা বুঝিয়েছেন?
tommyk

@ টম্মিক তাই প্রথমে ব্যাকআপটিতে অনুলিপি করুন। আমার ধারণা বাহিনীটি প্রয়োজনীয় নয়।
শেলভাকু

0

পরিষ্কার শাখা থেকে মাস্টার পরীক্ষা করার পরেও একই সমস্যা ছিল। কিছুক্ষণ পরে আমি মাস্টারটিতে অনেকগুলি পরিবর্তিত ফাইল চিনতে পেরেছিলাম। আমি জানি না কেন তারা সেখানে ছিল, একটি পরিষ্কার শাখা থেকে স্যুইচ করার পরে। যাইহোক, পরিবর্তিত ফাইলগুলি আমার কাছে কোনও ধারণা রাখেনি, তাই আমি কেবল সেগুলি স্ট্যাশ করেছি এবং ত্রুটিটি চলে গেছে।

git:(master) git stash


0

আপনার যদি পুরনো ব্যাকআপ থাকে এবং তাড়াহুড়োয় হয়:

আপনার বর্তমান, গিট-ভাঙা, প্রকল্পের পথের একটি নতুন ব্যাকআপ করুন।

  1. আপনার .gitট্র্যাশে সরান (কখনই মুছবেন না)
  2. .gitওল্ড ব্যাকআপ থেকে অনুলিপি করুন
  3. git pull (মার্জ সংঘাত তৈরি করবে)
  4. আপনার সমস্ত উত্স (সমস্ত কিছু আপনি গিটতে রেখেছেন) ট্র্যাশে স্থানান্তরিত করুন: ./src (কখনও মুছবেন না)
  5. নতুন সমস্ত ব্যাকআপ থেকে আপনার সমস্ত উত্স (আপনি গিটের মধ্যে রেখেছেন) কপি করুন
  6. সমস্ত "মার্জ" এ গ্রহণ করুন git gui, ধাক্কা এবং ... হাততালি!

0

উপরের বারোটি পদক্ষেপের সমাধানটি আমাকে জ্যাম থেকে বেরিয়ে আসতে সহায়তা করেছিল। ধন্যবাদ। মূল পদক্ষেপগুলি প্রবেশ করানো ছিল:

git fsck --full 

এবং সমস্ত খালি বস্তু সরান

rm .git/objects/...

তারপরে ফ্ল্যাগের দুটি লাইন পাওয়া:

tail -n 2 .git/logs/refs/heads/master

প্রত্যাবর্তিত মান সহ

git update-ref HEAD ...

এই মুহুর্তে আমার আর কোনও ত্রুটি নেই, তাই আমি আমার সর্বাধিক সাম্প্রতিক ফাইলগুলির একটি ব্যাকআপ তৈরি করেছি। তারপরে গিট টানুন যার পরে গিট পুশ করুন। আমার ব্যাকআপগুলি আমার গিট সংগ্রহস্থল ফাইলটিতে অনুলিপি করেছে এবং আরও একটি গিট পুশ করেছে। এটা আমার স্রোত পেয়েছে।


0

আমি আমার গিট ত্রুটিটি ঠিক করেছি: অবজেক্ট ফাইলটি খালি এটি দ্বারা:

  1. আমার শেষ সফল প্রতিশ্রুতিবদ্ধ / ধাক্কা দেওয়ার পরে সম্পাদিত সমস্ত ফাইলের একটি অনুলিপি সংরক্ষণ করা,
  2. আমার সংগ্রহস্থল সরানো এবং পুনরায় ক্লোনিং,
  3. আমার সম্পাদিত ফাইলগুলির সাথে পুরানো ফাইলগুলি প্রতিস্থাপন করা হচ্ছে।

আশা করি এটি সাহায্য করে।


0

এটি প্রায় নিয়মিত আমার সাথেও ঘটে। এটি হুবহু ঘটে গেলে কোনও প্রোটোকল তৈরি করেনি, তবে আমার সন্দেহ আছে যে যখনই আমার ভার্চুয়াল মেশিনটি "অপ্রত্যাশিতভাবে" উপস্থিত থাকে তখনই এটি ঘটে। আমি যদি ভিএম উইন্ডোটি বন্ধ করে দিই (আমি উবুন্টু 18.04 ব্যবহার করছি) এবং আবার শুরু করি, জিনিসগুলি সর্বদা (?) কাজ করে। তবে আমার ল্যাপটপটি বন্ধ করার সময় যদি ভিএম উইন্ডোটি এখনও খোলা থাকে (উইন্ডোজ হোস্ট সিস্টেম), তবে আমি বরং এই সমস্যাটি প্রায়শই ঘনিয়ে আসি।

এখানে দেওয়া সমস্ত উত্তর হিসাবে:

  1. আপনাকে ধন্যবাদ - তারা খুব দরকারী; আমি সাধারণত আমার কোডের একটি স্থানীয় অনুলিপি সংরক্ষণ করি, দূর থেকে রিপো পুনরুদ্ধার করি এবং ব্যাকআপ কপিটি স্থানীয় ফোল্ডারে ফিরিয়ে আনি।

  2. অন্তর্নিহিত সমস্যাটি আসলে গিট সমস্যা নয়, বরং একটি ভিএম এবং / অথবা লিনাক্স সমস্যা, তাই আমি ভাবছি কারণগুলি নিরাময়ের উপায় না থাকলে উপসর্গগুলি খুঁজে পাওয়া উচিত কিনা? এই ধরণের ত্রুটিটি বোঝায় না যে কোনও ফাইল সিস্টেমের পরিবর্তনগুলি কোনও যুক্তিসঙ্গত সময়ে "প্রয়োগ" করা হয় না, তবে কেবল ক্যাশেড হয়? (উদাহরণস্বরূপ দেখুন /unix/464184/are-file-edits-in-linux-directly-saved-into-disk ) - আমার কাছে এটি প্রদর্শিত হবে যেন ভার্চুয়াল লিনাক্স মেশিনগুলি না করে তাদের জিনিসগুলি প্রায়শই যথেষ্ট পরিমাণে ছড়িয়ে দিন। এটি ওরাকলের ভার্চুয়ালবক্সের সমস্যা (যা অন্যথায় খুব সুন্দরভাবে কাজ করে) বা অতিথি ফাইল সিস্টেমের, বা এমন কিছু সেটিংস যা আমরা সকলেই উপেক্ষা করি তা আমার দক্ষতার বাইরে নয়। তবে কেউ এই বিষয়ে আলোকপাত করতে পারলে আমি খুশি হব।


0

আসলে আমারও একই সমস্যা ছিল। এটি চেষ্টা করার আগে আপনার কোডের একটি অনুলিপি রাখুন।

আমি করেছি git reset HEAD~

আমার শেষ প্রতিশ্রুতিটি পূর্বাবস্থায় ফেরা হয়েছিল তখন আমি এটি আবার সংঘবদ্ধ করেছিলাম, সমস্যার সমাধান হয়েছে!


-5

সতর্কতা: আরও অভিজ্ঞতার সাথে, আমি বুঝতে পারি যে এটি পারমাণবিক বিকল্প এবং সাধারণত করা উচিত নয় এবং কিছুই শেখায় না। তবে, ব্যক্তিগত প্রকল্পগুলির বিরল ইভেন্টগুলিতে, আমি এখনও এটি দরকারী বলে মনে করেছি, তাই আমি এটিকে ছেড়ে দিচ্ছি।

আপনি যদি আপনার historicalতিহাসিক প্রতিশ্রুতি রাখার বিষয়ে চিন্তা না করেন তবে চালান

rm -r .git

তারপরে রাইট-সুরক্ষিত ফাইলগুলি মুছে ফেলার বিষয়ে জিজ্ঞাসার যে কোনও বিষয়ে হ্যাঁ উত্তর দিন। এক মিনিটের মধ্যে সমস্যার সমাধান।


3
আপনি যদি কৌশলে আপনার ইতিহাস চান তবে এটি করবেন না।
মি 無
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.