গিট: স্থানীয় পরিবর্তনগুলি পূর্বাবস্থায় ফেরাতে পারে না (ত্রুটি: পথ… আনলাইজড)


336

আমি কাজ করে গাছের অবস্থা অনুসরণ করছি

$ git status foo/bar.txt
# On branch master
# Unmerged paths:
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#       deleted by us:      foo/bar.txt
#
no changes added to commit (use "git add" and/or "git commit -a")

ফাইল foo/bar.txtরয়েছে এবং আমি এটি আবার "অপরিবর্তিত অবস্থায়" পেতে চাই ('এসএনএন রিভার্ট'-এর অনুরূপ):

$ git checkout HEAD foo/bar.txt
error: path 'foo/bar.txt' is unmerged
$ git reset HEAD foo/bar.txt
Unstaged changes after reset:
M       foo/bar.txt

এখন এটি বিভ্রান্তিকর হয়ে উঠছে:

$ git status foo/bar.txt
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       new file:   foo/bar.txt
#
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   foo/bar.txt
#

উভয় বিভাগে একই ফাইল, নতুন এবং সংশোধিত? আমার কি করা উচিৎ?


7
আমি আশা করি কেউ কীভাবে ব্যাখ্যা করতে পারে যে আমরা কীভাবে এই পরিস্থিতিতে পড়ি, কেন ঘটে এবং কেন সমাধান কাজ করে।
মার্কোস ডায়োনি

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

উত্তর:


555

আপনি এটি প্রায় ভুল উপায়ে করেছেন। আপনাকে প্রথমে রিসেট করতে হবে, ফাইলটি আনস্টেজ করতে হবে, তারপরে চেকআউট করা হবে, স্থানীয় পরিবর্তনগুলি ফিরিয়ে আনতে।

এটা চেষ্টা কর:

$ git reset foo/bar.txt
$ git checkout foo/bar.txt

ধন্যবাদ; মোহন মত কাজ! আমাকে প্রতিশ্রুতিবদ্ধ হয়েছিল ( -আর্গের সাথে নয় , প্রাসঙ্গিক পরিবর্তনগুলি ইতিমধ্যে মঞ্চস্থ হয়েছিল) এবং তারপরে আমি সাধারণের মতো ধাক্কা / টানতে সক্ষম হয়েছি।
প্যাট্রিক

18
Foo বিন্যাস / bar.txt <br/> $ Git চেকআউট - - foo বিন্যাস / bar.txt <br/> (লক্ষ্য করুন অতিরিক্ত "-" মাঝে) <br/> $ Git পুনরায় সেট করুন: আমার জন্য তা একটি প্রয়োজনীয়
জানুয়ারী

4
ভাল সিনট্যাক্সটি হ'ল "গিট রিসেট হেড ফাইল 1 ফাইল 2 ..." তারপরে "গিট চেকআউট - ফাইল 1 ফাইল 2 ..."
টমাস ডিকোক্স

1
এটি সর্বদা হাস্যকর যখন সর্বোচ্চ ভোটের উত্তরটি মূলত কেবল "আপনি এটি ভুল করছেন" বলে বলে :) :)
নাথানচেয়ার

4
একটি ব্যাখ্যা (কী জিনিসগুলি নিয়ে থাকে) দুর্দান্ত হত ...
কিসাকি

51

এটি আমার জন্য পুরোপুরি কাজ করেন:

$ git reset -- foo/bar.txt
$ git checkout foo/bar.txt


-2
git checkout foo/bar.txt

তুমি কি এটা চেষ্টা করেছ? (একটি প্রধান কীওয়ার্ড ছাড়াই)

আমি সাধারণত আমার পরিবর্তনগুলি এইভাবে ফিরিয়ে আনি।


1
checkoutএকত্রীকরণের মাঝে চেষ্টা করার সময় সাধারণ ত্রুটি : $ git co path/to/file= ফলাফল => error: path 'path/to/file' is unmerged => সুতরাং, প্রথমে চালান: $ git reset path/to/fileএবং তারপরে git checkout path/to/fileকাজ করা উচিত।
মাইকেল 25

2
HEAD উল্লেখ না করে সূচক থেকে গিট চেকআউট চেক আউট তৈরি করবে, যা একটি দুর্বল অপারেশন (সামগ্রীর উত্সটি হ্যাডের পরিবর্তে সূচক হয়)। তবুও আমি মনে করি না যে এই ক্ষেত্রে কোনও পার্থক্য তৈরি করে - নির্দিষ্ট বর্ণিত সমস্যাটির সাথে প্রশ্নটি উল্লেখ করা হয়েছে। তুমি কি চেষ্টা করেছ ?
কিসাকি

-4

আমি সমস্ত 'নোংরা' রাজ্যের সাময়িক পরিচালনা করার জন্য গিট স্ট্যাশকে খুব দরকারী বলে মনে করি।


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