মারাত্মক: গিট-রাইটিং-ট্রি: গাছ তৈরিতে ত্রুটি


202

আমি git pullএকটি ভাগ করা গিট সংগ্রহস্থল থেকে একটি করেছি, তবে আমি চেষ্টা করার পরে কিছু সত্যিই ভুল হয়ে গেছে git revert। এখানে এখন পরিস্থিতি:

$ git stash
Source/MediaStorageAndFileFormat/gdcmImageCodec.cxx: needs merge
Source/MediaStorageAndFileFormat/gdcmJPEGLSCodec.cxx: needs merge
Source/MediaStorageAndFileFormat/gdcmPNMCodec.cxx: needs merge
Testing/Source/DataStructureAndEncodingDefinition/Cxx/TestDS.cxx: needs merge
Utilities/socketxx/socket++/sockstream.cpp: needs merge
Source/MediaStorageAndFileFormat/gdcmImageCodec.cxx: needs merge
Source/MediaStorageAndFileFormat/gdcmJPEGLSCodec.cxx: needs merge
Source/MediaStorageAndFileFormat/gdcmPNMCodec.cxx: needs merge
Testing/Source/DataStructureAndEncodingDefinition/Cxx/TestDS.cxx: needs merge
Utilities/socketxx/socket++/sockstream.cpp: needs merge
Source/MediaStorageAndFileFormat/gdcmImageCodec.cxx: unmerged (2aafac967c35fa4e77c3086b83a3c102939ad168)
Source/MediaStorageAndFileFormat/gdcmImageCodec.cxx: unmerged (78cc95e8bae85bf8345a7793676e878e83df167b)
Source/MediaStorageAndFileFormat/gdcmImageCodec.cxx: unmerged (2524db713fbde0d7ebd86bfe2afc4b4d7d48db33)
Source/MediaStorageAndFileFormat/gdcmJPEGLSCodec.cxx: unmerged (4bb4ba78973091eaa854b03c6ce24e8f4af9e7cc)
Source/MediaStorageAndFileFormat/gdcmJPEGLSCodec.cxx: unmerged (ad0982b8b8b4c4fef23e69bbb639ca6d0cd98dd8)
Source/MediaStorageAndFileFormat/gdcmJPEGLSCodec.cxx: unmerged (4868371b7218c6e007fb6c582ad4ab226167a80a)
Source/MediaStorageAndFileFormat/gdcmPNMCodec.cxx: unmerged (f7a1b386b5b13b8fa8b6a31ce1258d2d5e5b13c5)
Source/MediaStorageAndFileFormat/gdcmPNMCodec.cxx: unmerged (6ce299c416fbb3bb60e11ef1e54962ffd3449a4c)
Source/MediaStorageAndFileFormat/gdcmPNMCodec.cxx: unmerged (75c8043a60a56a1130a34cdbd91d130bc9343c1c)
Testing/Source/DataStructureAndEncodingDefinition/Cxx/TestDS.cxx: unmerged (79c2843f2649ea9c87fa57662dafd899a5fa39ee)
...
fatal: git-write-tree: error building trees
Cannot save the current index state

সব রিসেট করার উপায় আছে?

ধন্যবাদ

উত্তর:


566

ব্যবহার করুন:

git reset --mixed

পরিবর্তে git reset --hard। আপনি কোনও পরিবর্তন হারাবেন না।


29
নোট করুন যে যখন --mixedআর্গুমেন্টটি git resetদেওয়া হয় না তখন তর্কটিও ডিফল্ট আচরণ। রেফারেন্সের জন্য ম্যানপেজ
ক্রিস্টোফার

62
বৈধ উত্তর, তবে কী ঘটেছে এবং কেন এটি প্রয়োজনীয় ছিল সে সম্পর্কে একটি বিবরণ পেয়ে ভাল লাগবে।
মিমিগডল

1
@ মিমগডল হ্যাঁ - আমি git resetএখানে (ডিফল্ট) --mixedবিকল্পের সাথে কেন উপযুক্ত এবং কার্যকর সেগুলির একটি ব্যাখ্যা দেখতে চাই । মার্জ অনুসারে - গিট আনজার্জড পাথ ইস্যু : এটি HEAD এ স্যুইচ করবে এবং গিটকে কোনও মার্জ সংঘাতগুলি ভুলে যেতে বলবে এবং ওয়ার্কিং ডিরেক্টরিটি যেমন রয়েছে তেমন ছেড়ে দেবে। হেরাসেক, এ কি হচ্ছে?
nealmcb

1
@ রাইটোফ্যান্ডামাস কয়েক মাস দেরিতে হলেও রিসেট এবং হাইফেনগুলির মধ্যে স্থানটি নোট করুন।
মাইক অর্টিজ

2
এফডব্লিউআইডাব্লু যখন আমি করছিলাম তখন আমি এই ইস্যুটিতে ছড়িয়ে পড়েছিলাম git stash। বোধ করতেন git reset --mixedএটা সমাধান।
মধু

44

এটি আমার পক্ষে কাজ করেছে:

ডু

$ git status

এবং আপনার আছে কিনা তা পরীক্ষা করে দেখুন Unmerged paths

# Unmerged paths:
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add <file>..." to mark resolution)
#
#   both modified:      app/assets/images/logo.png
#   both modified:      app/models/laundry.rb

তাদের git addপ্রত্যেকের সাথে এগুলি ঠিক করুন এবং git stashআবার চেষ্টা করুন ।

git add app/assets/images/logo.png

6
এটি আমার পক্ষে কাজ করেছে। গিট রিসেট - মিক্সড বিশ্ব শান্তির চেয়ে ভাল হতে পারে তবে এটি কী করে তার কোনও ব্যাখ্যা ছাড়াই আমি এটিকে স্পর্শ করছি না। আমার ক্ষেত্রে, পূর্বের টানে একটি সংঘর্ষ হয়েছিল যা আমি লক্ষ্য করি নি। অমীমাংসিত টানার কারণে স্ট্যাশ ব্যর্থ হয়েছে।
ইয়ান ওলম্যান

আমি এই কৌশলটি এর চেয়ে ভাল আর বুঝতে পারি না git reset --mixed, তবে এটি কার্যকর হয়েছিল এবং আমার মামলার জন্য এটি আরও ভাল ফিট বলে মনে হয়েছিল কারণ আমি এর git stashচেয়ে ত্রুটি পেয়েছি git revert
মঙ্গলবার

একটি আলাদা করা হয়েছে পাথ মানে কি ফেলেছেন git merge, অথবা Git একত্রীকরণ সমতুল্য, এবং এটি যে ফাইল পরিবর্তন দুইটা ভিন্ন একত্রীকরণ চেষ্টা করেছি, কিন্তু ব্যর্থ হয়।
সিদ্ধন্তসোমানি

11

ম্যালাতের প্রতিক্রিয়া অনুসরণ করতে, আপনি প্যাচ তৈরি করে পরিবর্তনগুলি হারাতে এড়াতে পারেন এবং পরবর্তী সময়ে এটিকে আবার প্রয়োগ করতে পারেন।

git diff --no-prefix > patch.txt
patch -p0 < patch.txt

সুরক্ষার জন্য আপনার প্যাচটি সংগ্রহস্থল ফোল্ডারের বাইরে রাখুন।


এটি আমাকে দিয়েছে: SDGL132d9f4b4: গালিচ-সাধারণ dstromberg $ প্যাচ -p0 </tmp/patch.txt প্যাচ: **** প্যাচ ইনপুটটিতে কেবল আবর্জনা পাওয়া গেছে garbage
ডিস্ট্রোমবার্গ

আমি মনে করি আপনার mvপ্যাচটি আবার সেই ডিরেক্টরিতে তৈরি করা উচিত যেখানে আপনি এটি তৈরি করেছেন। 1. git diff2. mv patch.txt /tmp3. git stash4।mv /tmp/patch.txt . 5.patch -p0
ইউনজেন

9

আমি ব্যবহার করতাম:

 git reset --hard

আমি কিছু পরিবর্তন হারিয়েছি, তবে এটি ঠিক আছে।


6
কেবল একটি নোট: git revertঅতীত থেকে পরিবর্তনগুলি মার্জ করার চেষ্টা করে; আপনি সঠিকভাবে git resetঘড়িটি রিওয়াইন্ড করতে ব্যবহার করেছেন । এটি দুর্ভাগ্যজনক যে git stashমার্জ সংঘাতের সাথে কাজ করে না।
জোশ লি

2
আপনি যদি পরিবর্তনগুলি হারিয়ে
ফেলেন

5

আপনার গিট সংগ্রহস্থলগুলিতে কিছু অনাবৃত পাথ থাকতে পারে যা স্ট্যাশ করার আগে আপনাকে সমাধান করতে হবে।


1
এটি আমাকে সহায়তা করেছে তাই আমি এটি একটি +1 দেব। তবে আমি আরও বর্ধিত উত্তর রেখেছি।
ডেভিড আরজেড আইালা

-1

আমি যখন আমার পরিবর্তনগুলি স্থির করে দেওয়ার চেষ্টা করছিলাম তখন এটি আমার জন্য হয়েছিল তবে তারপরে আমার পরিবর্তনগুলি আমার শাখার বর্তমান অবস্থার সাথে দ্বন্দ্ব নিয়েছিল ।

সুতরাং আমি তা করেছি git reset --mixedএবং তারপরে গিট সংঘাতের সমাধান করেছি এবং আবারও স্তব্ধ হয়েছি ।

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