গিট রিবেস পূর্বাবস্থায় ফেলা হচ্ছে


3176

কেউ কীভাবে সহজেই গিট রিবেসকে পূর্বাবস্থায় ফেলা যায় জানেন?

মনের মধ্যে আসার একমাত্র উপায় হ'ল ম্যানুয়ালি এটিতে যাওয়া:

  • উভয় শাখায় কমিট পিতামাতাকে চেকআউট করুন
  • তারপরে সেখান থেকে একটি টেম্প শাখা তৈরি করুন
  • চেরি-বাছাই সব কমিটিকে হাতছাড়া করে
  • আমি নিজেই তৈরি শাখাটি যে শাখায় প্রত্যাবর্তন করেছি সেটিকে প্রতিস্থাপন করুন

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

তবে আমার দৃষ্টিভঙ্গি আমাকে সাবটটিমাল এবং ত্রুটি-প্রবণ হিসাবে আঘাত করেছে (ধরা যাক আমি মাত্র আমার নিজের 2 টি শাখা দিয়ে প্রত্যাবর্তন করেছি)।

কোন ধারনা?

স্পেসিফিকেশন: আমি একটি রিবেস নিয়ে কথা বলছি যার সময় বেশ কয়েকটি কমিট পুনরায় খেলানো হয়েছিল। শুধু একজনই নয়।


6
এছাড়াও নোট করুন যে কোনও রিবেস চলাকালীন আপনি কমিটগুলি বাদ দিতে পারেন বা এগুলি স্কোয়াশ করতে পারেন; এই পরিবর্তনগুলি মূল নোডের কোনও পয়েন্টার বা রিফ্লগের মাধ্যমে চালনা ছাড়াই পুনরায় পরিবর্তনযোগ্য নয়, সুতরাং চেরিপিকিং কাজ করবে না।
আনিসেভ

উত্তর:


4333

সবচেয়ে সহজ উপায় শাখাটির প্রধান প্রতিশ্রুতি সন্ধান করা হবে কারণ এটি রিফ্লোগে রিবেস শুরুর আগেই ছিল ...

git reflog

এবং এটিতে বর্তমান শাখাটি পুনরায় সেট করতে ( --hardবিকল্পটি পুনরায় সেট করার আগে যথাযথ নিশ্চিত হওয়া সম্পর্কে সাধারণ সতর্কতা সহ )।

মনে করুন পুরানো প্রতিশ্রুতি HEAD@{5}রেফ লগে ছিল:

git reset --hard HEAD@{5}

উইন্ডোজে আপনাকে রেফারেন্সটি উদ্ধৃত করতে হতে পারে:

git reset --hard "HEAD@{5}"

আপনি কেবলমাত্র git log HEAD@{5}( উইন্ডোজ git log "HEAD@{5}" :) করে প্রার্থীর পুরানো মাথার ইতিহাস পরীক্ষা করতে পারেন ।

আপনি যদি প্রতিটি শাখা রিফ্লোগগুলি অক্ষম না করে থাকেন তবে চূড়ান্ত শিরোনামে ফিরে git reflog branchname@{1}যাওয়ার আগে একটি রিবেস শাখার মাথাটিকে আলাদা করে দেওয়ার কারণে আপনি কেবল সহজভাবে সক্ষম হবেন । আমি এটি দ্বিগুণ পরীক্ষা করব, যদিও আমি সম্প্রতি এটি যাচাই করি নি।

ডিফল্ট হিসাবে, সমস্ত রিফ্লাগগুলি নন-বেয়ার স্টোরগুলির জন্য সক্রিয় করা হয়:

[core]
    logAllRefUpdates = true

113
গিট রিফ্লোগ দুর্দান্ত, কেবল মনে রাখবেন আপনি আরও ভাল ফর্ম্যাটেড আউটপুট পেতে পারেন git log -g(স্কট চকনের প্রগতি.আর / পুস্তক থেকে টিপ )।
কর্মী

60
@ জাচ: git rebase --abort( -iকোনও অর্থই দেয় না --abort) এমন রিবেসকে ছেড়ে দেওয়া যা সম্পূর্ণ হয়নি - হয় বিরোধের কারণে বা এটি ইন্টারেক্টিভ বা উভয় কারণে; এটি সফল রিবেসকে পূর্বাবস্থায় ফেলার বিষয়ে নয় যা এটাই প্রশ্নটি। আপনি হয় ব্যবহার করবেন rebase --abortবা reset --hardআপনি কোন পরিস্থিতিতে ছিলেন তার উপর নির্ভর করে You আপনার উভয়টি করার দরকার নেই।
সিবি বেইলি

310
শুধু ক্ষেত্রে, একটি ব্যাকআপ বানিয়ে: git tag BACKUP। কিছু ভুল হয়ে গেলে আপনি এটিতে ফিরে আসতে পারেন:git reset --hard BACKUP
কলিপ্টো

6
যদি আপনি প্রচুর কমিট করেন তবে হেড @ {#} আপনি যা খুঁজছেন তার commit:বিপরীতে উপস্থিত থাকবে rebase:। সুস্পষ্ট মনে হচ্ছে তবে এটি আমাকে কিছুটা বিভ্রান্ত করেছে।
ওয়ার্পলিং

4
দুর্ঘটনাজনক রিবেসের পরে দলে যোগ দেওয়া: ডি। git reset --hard ORIG_HEADদুর্ঘটনাকবলিত রিবেসের পরপরই কি কৌশলটি করবে না ?
কয়েলার

1485

প্রকৃতপক্ষে, রিবাজে আপনার প্রারম্ভিক বিন্দুটি সংরক্ষণ করে ORIG_HEADতাই এটি সাধারণত এতটা সহজ:

git reset --hard ORIG_HEAD

যাইহোক, reset, rebaseএবং mergeসব সংরক্ষণ আপনার মূল HEADমধ্যে পয়েন্টার ORIG_HEADতাই হয়, আপনি ঐ কমান্ড রি-বেসের ফলে যেহেতু আপনি reflog ব্যবহার করতে হবে তারপর পূর্বাবস্থায় ফিরিয়ে নিয়ে যেতে চেষ্টা করছেন কোন কাজ করেছি পারেন।


34
যদি ORIG_HEADআর কার্যকর না হয় তবে আপনি branchName@{n}সিনট্যাক্সটিও ব্যবহার করতে পারেন , যেখানে nশাখা পয়েন্টারটির নবম পূর্ব অবস্থান রয়েছে। সুতরাং উদাহরণস্বরূপ, আপনি যদি featureAআপনার masterশাখায় শাখাটি রিবেস করেন, তবে আপনি পুনর্বাসনের ফলাফল পছন্দ করেন না, তবে আপনি কেবল git reset --hard featureA@{1}শাখাটি পুনরায় সেট করার আগে যা করতে পারেন ঠিক সেখানে ঠিক করতে পারেন reset আপনি সংশোধনগুলির জন্য অফিসিয়াল গিট ডক্সে শাখা @ {n} বাক্য গঠন সম্পর্কে আরও পড়তে পারেন ।

15
এটি সবচেয়ে সহজ। কিছুক্ষণের সাথে এটি অনুসরণ করুন git rebase --abort
Seph

1
@ ডাব্লিক কোনও বিরোধ ছাড়াই সম্পূর্ণ সফল রিবেসের পরে এটি আমার পক্ষে ভাল কাজ করেছে git 2.17.0
ডিভিএলএসজি

4
এবং আমাকে এটি পরিপূরক করা যাক: git reset --hard ORIG_HEADবারবার ফিরে বারবার রোল করতে ব্যবহার করতে পারেন। বলুন, যদি A --- রিবেস করতে --- বি --- রিবেস করতে --- সি, এখন আমি সিতে আছি, আমি দু'বার ব্যবহার করে A তে ফিরে যেতে পারিgit reset --hard ORIG_HEAD
CalvinChe

5
@ সেফ আপনি ব্যাখ্যা করতে পারেন যে আপনি কেন অনুসরণ করার পরামর্শ দিয়েছেন git rebase --abort?
আপক্রিক

385

চার্লসের উত্তরটি কাজ করে তবে আপনি এটি করতে চাইতে পারেন:

git rebase --abort

পরে পরিষ্কার করা reset

অন্যথায়, আপনি " Interactive rebase already started" বার্তাটি পেতে পারেন ।


4
এটি আমার প্রম্পটে থাকা "| REBASE" অংশটি সরিয়ে দিয়েছে। +1
ওয়াউটার থিলেন

62
প্রশ্ন ছিল না। প্রশ্ন জিজ্ঞাসা করে কিভাবে একটি সমাপ্ত রিবেস পূর্বাবস্থায় ফেরা যায়।
অরুণাভ সান্যাল

2
চার্লস জবাব সম্পর্কে একটি মন্তব্য হওয়া উচিত, কারণ এটি এর উপর প্রশ্নের উত্তর দেয় না
মার্মেল

এইচএম, আমাকে এটি করতে হবে না।
ভিক্টর সেč

1
একমাত্র যে আমার পক্ষে কাজ করেছে!
আলেকজান্দ্রি পিকার্ড

90

তার পুরানো টিপটির ড্যাংলিং কমিট অবজেক্টে শাখাটি পুনরায় সেট করা অবশ্যই সেরা সমাধান, কারণ এটি কোনও প্রচেষ্টা ব্যয় না করে পূর্বের অবস্থাটিকে পুনরুদ্ধার করে। তবে যদি আপনি এই প্রতিশ্রুতিগুলি হারিয়ে ফেলেছেন (f.ex। কারণ ইতিমধ্যে আপনি আপনার ভাণ্ডারগুলি আবর্জনা-সংগ্রহ করেছেন, বা এটি একটি নতুন ক্লোন), আপনি সর্বদা আবার শাখাটি পুনরায় চালু করতে পারেন। এর চাবি হ'ল --ontoসুইচ।

ধরা যাক আপনার কাছে একটি বিষয় শাখা কল্পনাপ্রসূতভাবে বলা হয়েছিল topic, masterযখন আপনি শাখাটি বন্ধ করেছিলেন যখন টিপটি প্রতিশ্রুতিবদ্ধ masterছিল 0deadbeeftopicশাখায় থাকাকালীন কিছু সময় আপনি করেছিলেন git rebase master। এখন আপনি এটি পূর্বাবস্থাপন করতে চান। এখানে কীভাবে:

git rebase --onto 0deadbeef master topic

এটি topicযে সমস্ত কমিটগুলি চালু নেই সেগুলি নেবে masterএবং তাদের উপরে আবার খেলতে হবে 0deadbeef

এর সাহায্যে --ontoআপনি নিজের ইতিহাসকে যেকোন আকারে পুনর্বিন্যস্ত করতে পারেন ।

আনন্দ কর. :-)


3
আমি মনে করি এটির নমনীয়তার কারণে এটি সেরা বিকল্প। আমি বি 1 কে মাস্টার ছাড়িয়েছিলাম, তারপরে বি 1 কে নতুন শাখা বি 2 তে রিবাসেড করেছি, তারপরে আবার মাস্টারের উপর ভিত্তি করে বি 1 ফিরিয়ে আনতে চেয়েছিলাম। আমি শুধু গিট ভালবাসি - ধন্যবাদ!
রিপার 234

2
এটি এখানে সেরা বিকল্প! এটি আমার বর্তমান শাখায় আমার সমস্ত পরিবর্তন রেখেছিল এবং সমস্ত অযাচিতকে সরিয়ে দিয়েছে!
অ্যালিসিয়া টাং

আমি এটির সংমিশ্রণ সহ বলব --ontoএবং -iআপনি নিজের ইতিহাসকে যেকোন আকারে পুনর্বিন্যাস করতে পারেন। আপনার তৈরি করা আকারগুলি দেখতে :-) গিটক (বা ম্যাকের উপর গিটক্স) ব্যবহার করুন।
rjmunro

69

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

তারপরে, পুনরুদ্ধার করা যতটা সহজ git reset --hard BACKUP


2
আমিও এটি করি আপনি কী বোঝাতে চেয়েছিলেন তা আপনি পরিবর্তন করেছেন তা নিশ্চিত করার জন্য ডিফারফট ব্যাকআপ..এইচডি করতেও এটি দরকারী।
পল বোন

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

4
ঠিক আছে, আমি অর্থবহ নামগুলি পছন্দ করি কারণ রিফ্লগটিতে সঠিক আইটেম অনুসন্ধান করা কখনও কখনও মজাদার নয়।
অ্যালেক্স গন্টমাখের ২১:৩৩ এ

12
আপনার আসলে একটি ব্যাকআপ শাখা তৈরি করার প্রয়োজন নেই, আপনি কেবল branchName@{n}বাক্য গঠন ব্যবহার করতে পারেন , এখানে nশাখা পয়েন্টারটির নবম পূর্ব অবস্থান position সুতরাং উদাহরণস্বরূপ, আপনি যদি featureAআপনার masterশাখায় শাখাটি রিবেস করেন তবে আপনি পুনর্বাসনের ফলাফল পছন্দ করেন না, তবে আপনি কেবল git reset --hard featureA@{1}শাখাটি পুনরায় সেট করার আগে যা করতে পারেন ঠিক সেখানে ঠিক করতে পারেন reb আপনি সংশোধনগুলির জন্য অফিসিয়াল গিট ডক্সেbranch@{n} বাক্য গঠন সম্পর্কে আরও পড়তে পারেন ।

2
প্রকৃতপক্ষে, আপনার উপরের সিনট্যাক্সটি ব্যবহার করার প্রয়োজন নেই, প্যাট নটজের উত্তর অনুসারে , HEADশাখার মূলটি অস্থায়ীভাবে সংরক্ষণ করা আছে ORIG_HEAD। তবে ব্যাকআপ শাখার লেবেল ব্যবহারের কৌশলটিও কার্যকর হয়, এটি কেবল আরও পদক্ষেপ।

68

আপনি যদি আপনার শাখাটিকে দূরবর্তী সংগ্রহস্থলের দিকে ধাক্কা দিয়েছিলেন (সাধারণত এটির উত্স) এবং তারপরে আপনি একটি সফল রিবেস করেছেন (একীভূত না করে) ( git rebase --abort"কোনও রিবেস চলছে না") আপনি কমান্ডটি ব্যবহার করে সহজেই শাখাটি পুনরায় সেট করতে পারবেন :

গিট রিসেট - মূল উত্স / {ব্র্যাঙ্কনাম}

উদাহরণ:

$ ~/work/projects/{ProjectName} $ git status
On branch {branchName}
Your branch is ahead of 'origin/{branchName}' by 135 commits.
  (use "git push" to publish your local commits)

nothing to commit, working directory clean

$ ~/work/projects/{ProjectName} $ git reset --hard origin/{branchName}
HEAD is now at 6df5719 "Commit message".

$ ~/work/projects/{ProjectName} $ git status
On branch {branchName}
Your branch is up-to-date with 'origin/{branchName}.

nothing to commit, working directory clean

এটা আমার জন্য সঠিক উত্তর। রিবেস এবং পুনর্বাসনের পূর্বে প্রতিশ্রুতিবদ্ধ একই কমিট আইডি ছিল এবং হেড {1 back এ ফিরে যাওয়া কেবল রিবেসকে ফিরিয়ে আনবে না!
বিল কোটসিয়াস

23

ব্যবহার reflogআমার জন্য কাজ করে না।

আমার জন্য যা কাজ করেছিল তা এখানে বর্ণিত অনুরূপ । রিভিজেড শাখার নাম অনুসারে .git / লগস / রেফগুলিতে ফাইলটি খুলুন এবং "রিবাজে ফিনসিহেড" সম্বলিত লাইনটি সন্ধান করুন, এরকম কিছু:

5fce6b51 88552c8f Kris Leech <me@example.com> 1329744625 +0000  rebase finished: refs/heads/integrate onto 9e460878

লাইনে তালিকাবদ্ধ দ্বিতীয় প্রতিশ্রুতি চেকআউট করুন।

git checkout 88552c8f

একবার এটি নিশ্চিত হয়ে যায় যে এটিতে আমার হারিয়ে যাওয়া পরিবর্তনগুলি আমি শাখা করেছিলাম এবং দীর্ঘশ্বাস ছেড়ে দিলাম।

git log
git checkout -b lost_changes


3
ওহো - এই লিঙ্কটি থেকে, "এখানে একটি সতর্কতামূলক বিষয় রয়েছে: আমি শাখার ইতিহাস হারিয়েছি তবে এই ক্ষেত্রে এটি সত্যিকার অর্থে গুরুত্বপূর্ণ নয় my আমি আমার পরিবর্তনগুলি পুনরুদ্ধার করতে পেরে খুশি হয়েছি" " ?
ruffin

16

একাধিক প্রতিশ্রুতিগুলির জন্য, মনে রাখবেন যে কোনও প্রতিশ্রুতিবদ্ধ প্রতিবেদনের সমস্ত ইতিহাস সেই প্রতিশ্রুতি দেয়। সুতরাং চার্লসের উত্তরে, "পুরাতন কমিটকে" "পুরানো কমিটদের মধ্যে নতুন" হিসাবে পড়ুন read যদি আপনি সেই প্রতিশ্রুতিতে পুনরায় সেট হন, তবে সেই প্রতিশ্রুতি পর্যন্ত সমস্ত ইতিহাস পুনরায় প্রদর্শিত হবে। এটি আপনার যা করা উচিত তা করা উচিত।


11

@ অ্যালান এবং @ জেরিনের সমাধান অনুসরণ করে আমি আশা করি আমি কেবল একটি মন্তব্য করতে পারি তবে আমার যথেষ্ট খ্যাতি নেই, তাই আমি নিম্নলিখিত আদেশটি ব্যবহার করেছি:

পরিবর্তে করছেন git rebase -i --abort (নোট -i ) আমি কেবল কি ছিল git rebase --abort( ছাড়া -i )।

উভয় -iএবং--abort একই সময়ে ব্যবহারের ফলে গিট আমাকে ব্যবহার / বিকল্পগুলির একটি তালিকা প্রদর্শন করে।

সুতরাং এই সমাধানের সাথে আমার পূর্ববর্তী এবং বর্তমান শাখার স্থিতিটি হ'ল:

matbhz@myPc /my/project/environment (branch-123|REBASE-i)
$ git rebase --abort

matbhz@myPc /my/project/environment (branch-123)
$

11

আপনি যদি সফলভাবে রিমোট শাখার বিরুদ্ধে প্রত্যাবর্তন করেন এবং না git rebase --abortকরতে পারেন তবে আপনি নিজের কাজটি সংরক্ষণের জন্য কিছু কৌশল করতে পারেন এবং জোর করে চাপ দেবেন না। মনে করুন আপনার বর্তমান শাখা যা ভুল করে পুনর্বাসিত হয়েছিল তাকে ডেকে পাঠানো your-branchহচ্ছেorigin/your-branch

  • git branch -m your-branch-rebased # বর্তমান শাখার নাম পরিবর্তন করুন
  • git checkout origin/your-branch # সর্বশেষ অবস্থানে পরিচিত যা চেকআউট origin
  • git checkout -b your-branch
  • পরীক্ষা git log your-branch-rebased, এর তুলনা git log your-branchএবং করে যে অনুপস্থিত সংজ্ঞায়িতyour-branch
  • git cherry-pick COMMIT_HASH প্রতিটি প্রতিশ্রুতি জন্য your-branch-rebased
  • আপনার পরিবর্তনগুলি ধাক্কা। দুটি স্থানীয় শাখার সাথে জড়িত remote/your-branchএবং আপনার কেবল চাপ দেওয়া উচিত দয়া করে সচেতন হনyour-branch

4

ধরা যাক আমি আমার বৈশিষ্ট্য শাখায় মাস্টারকে রিবেস করেছি এবং আমি 30 টি নতুন কমিট পেয়েছি যা কিছু ভেঙে দেয়। আমি খুঁজে পেয়েছি যে প্রায়শই খারাপ কাজগুলি সরিয়ে ফেলা সহজ।

git rebase -i HEAD~31

গত 31 টির জন্য ইন্টারেক্টিভ রিবেস কমিট করে (আপনি খুব বেশি উপায় বেছে নিলে তা ক্ষতি করে না)।

আপনি যে কমান্ডগুলি থেকে মুক্তি পেতে চান তা কেবল গ্রহণ করুন এবং এটিকে "বাছাই" না করে "ডি" দিয়ে চিহ্নিত করুন। এখন কমিটগুলি কার্যকরভাবে রিবাজটি পূর্বাবস্থায় মুছে ফেলা হয় (যদি আপনি কেবলমাত্র কমিটগুলি সরিয়ে ফেলেন যখন রিবেসিং করার সময় আপনি পেয়েছিলেন)।


3

নতুন বাচ্চারা / যে কেউ হার্ড রিসেট করতে খুব ভয় পেয়েছে তাদের জন্য আপনি রেফলগ থেকে প্রতিশ্রুতিটি চেকআউট করতে পারেন এবং তারপরে এটি একটি নতুন শাখা হিসাবে সংরক্ষণ করতে পারেন।

git reflog

আপনি প্রতারণা শুরু করার ঠিক আগে প্রতিশ্রুতি সন্ধান করুন। এটি খুঁজে পেতে আপনার আরও নিচে স্ক্রোল করতে হতে পারে (এন্টার বা পেজডাউন টিপুন)। হেড নম্বরটি নোট করুন এবং 57 টি প্রতিস্থাপন করুন:

git checkout HEAD@{57}

শাখাটি পর্যালোচনা করুন / প্রতিশ্রুতিবদ্ধ করুন, যদি ভাল লাগে তবে এই হেড ব্যবহার করে একটি নতুন শাখা তৈরি করুন:

git checkout -b new_branch_name

2

আপনি যদি একটি শাখায় থাকেন তবে আপনি এটি ব্যবহার করতে পারেন:

git reset --hard @{1}

এখানে কেবল git reflogহেডের জন্য রেফারেন্স লগ নেই (প্রাপ্ত ), প্রতিটি শাখার জন্যও রেফলগ রয়েছে (দ্বারা প্রাপ্ত git reflog <branch>)। সুতরাং, আপনি যদি পরে থাকেন masterতবে git reflog masterসেই শাখায় সমস্ত পরিবর্তনগুলি তালিকাবদ্ধ করবে। আপনি যে পরিবর্তনগুলি পাঠাতে পারেন master@{1}, master@{2}ইত্যাদি

git rebase সাধারণত একাধিকবার হেড পরিবর্তিত হবে তবে বর্তমান শাখাটি একবারে আপডেট হবে।

@{1}কেবল একটি হল বর্তমান শাখা জন্য শর্টকার্ট , তাই এটি সমান master@{1}যদি হয় master

git reset --hard ORIG_HEADআপনি যদি git resetইন্টারেক্টিভ চলাকালীন ব্যবহার করেন তবে কাজ করবে না rebase


1

আমি সাধারণত যা করি তা হ'ল git reset #commit_hash

সর্বশেষ প্রতিশ্রুতি যেখানে আমি মনে করি রিবেসের কোনও প্রভাব ছিল না।

তারপর git pull

এখন আপনার শাখাটি মাস্টারের মতো হুবহু মিলে যাবে এবং রিবেসড কমিটগুলি এতে থাকা উচিত নয়।

এখন কেউ এই শাখায় কমিটিকে কেবল চেরি-বাছাই করতে পারে।


1

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


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

0

গিট রিসেট - মূল উত্স / {ব্র্যাঙ্কনাম}

রিবেস দ্বারা করা আপনার সমস্ত স্থানীয় পরিবর্তনগুলি পুনরায় সেট করার সঠিক সমাধান is


1
আপনি যদি হার্ড রিসেট করেন তবে আপনার origin/branchশিরোনাম এবং সেই পয়েন্টের মধ্যে পরিবর্তনগুলি হারাতে পারে। আপনি সাধারণত যে কথা বলতে চান না।
bluesmonk

আমার ক্ষেত্রে ঠিক এটাই আমি চেয়েছিলাম। তাই upvoting।
মন্দার ওয়াজে

-4

যদি আপনি গিট রিবেসের মধ্যে কিছু গণ্ডগোল করে থাকেন, উদাহরণস্বরূপ git rebase --abort, যখন আপনার অনির্ধারিত ফাইল রয়েছে, সেগুলি হারিয়ে যাবে এবং git reflogসাহায্য করবে না। আমার সাথে এটি ঘটেছে এবং আপনার এখানে বাক্সের বাইরে ভাবতে হবে। আপনি যদি আমার মতো ভাগ্যবান এবং ইন্টেলিজিজ ওয়েবস্টর্ম ব্যবহার করেন তবে আপনি ভার্সন right-click->local historyসফ্টওয়্যারটির সাথে কোন ভুল করেছেন তা বিবেচনা না করেই আপনি নিজের ফাইল / ফোল্ডারগুলির আগের অবস্থায় ফিরে যেতে পারেন এবং করতে পারেন। অন্য একটি ব্যর্থফেইস চালানো সর্বদা ভাল।


5
git rebase --abortএকটি সক্রিয় পুনর্বাসনা বাতিল , এটি একটি রিবাজ পূর্বাবস্থায় ফিরে আসে না । এছাড়াও, একই সাথে দুটি ভিসি ব্যবহার করা একটি খারাপ ধারণা। এটি জেটব্রাইন সফ্টওয়্যারটিতে একটি দুর্দান্ত বৈশিষ্ট্য তবে আপনার দুটি ব্যবহার করা উচিত নয়। গিটকে শিখাই ভাল, বিশেষত গিট সম্পর্কিত স্ট্যাক ওভারফ্লো সম্পর্কিত প্রশ্নের উত্তর দেওয়ার সময়।
ডুয়াদওয়াদ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.