সোর্স ট্রি উইন্ডোতে একটি প্রতিশ্রুতি বার্তা সম্পাদনা করুন (ইতিমধ্যে রিমোটে ধাক্কা দেওয়া হয়েছে)


202

কমান্ড লাইনের স্পর্শ না করে কীভাবে আমি সোর্স ট্রিটিতে একটি ভুল প্রতিশ্রুতি বার্তা সম্পাদনা করব?

অতিরিক্ত তথ্য:

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

ফলাফল:

  • আপনার মন্তব্য এবং জবাব অনুসারে এই মুহুর্তে এটি অসম্ভব বলে মনে হচ্ছে, আমি একটি নতুন সংগ্রহশালা তৈরি করতে এবং শুরু করে যাচ্ছি। সবাইকে সাহায্য করার জন্য ধন্যবাদ!

উত্তর:


425

উইন্ডোজ সংস্করণ 1.5.২.০ এর জন্য সোর্স ট্রি ব্যবহার করে পূর্বের প্রতিশ্রুতি ( যা সবচেয়ে সাম্প্রতিক প্রতিশ্রুতি নয় ) এর প্রতিশ্রুতি বার্তা সম্পাদনা করার পদক্ষেপগুলি এখানে রয়েছে :

ধাপ 1

আপনি সম্পাদনা করতে চান এমন প্রতিশ্রুতি দেওয়ার আগেই প্রতিশ্রুতি নির্বাচন করুন। উদাহরণস্বরূপ, আমি যদি "FOOBAR" বার্তাটি দিয়ে কমিট সম্পাদনা করতে চাই তবে তারপরে আমার ঠিক আগে উপস্থিত প্রতিশ্রুতিগুলি নির্বাচন করতে হবে:

আমি সম্পাদনা করতে চাই তার আগে প্রতিশ্রুতিবদ্ধ নির্বাচন করা।

ধাপ ২

নির্বাচিত প্রতিশ্রুতিতে ডান ক্লিক করুন এবং ক্লিক করুন Rebase children...interactively:

"ইন্টারেক্টিভভাবে বাচ্চাদের পুনর্বাসনা" নির্বাচন করা।

ধাপ 3

আপনি সম্পাদনা করতে চান এমন প্রতিশ্রুতি নির্বাচন করুন, তারপরে Edit Messageনীচে ক্লিক করুন । এই ক্ষেত্রে, আমি "FOOBAR!" বার্তাটি দিয়ে প্রতিশ্রুতি নির্বাচন করছি:

আপনি সম্পাদনা করতে চান প্রতিশ্রুতি নির্বাচন করুন।

পদক্ষেপ 4

প্রতিশ্রুতিবদ্ধ বার্তাটি সম্পাদনা করুন এবং তারপরে ক্লিক করুন OK। আমার উদাহরণে, আমি যুক্ত করেছি "শেজবট! স্কোয়াডোশ!"

প্রতিশ্রুতি বার্তা সম্পাদনা করুন

পদক্ষেপ 5

আপনি যখন ইন্টারেক্টিভ রিবেস উইন্ডোতে ফিরে আসেন, OKপুনর্বাসনের কাজটি শেষ করতে ক্লিক করুন :

শেষ করতে ঠিক আছে ক্লিক করুন।

পদক্ষেপ 6

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

Terminalটার্মিনাল খোলার জন্য জিইউআই থেকে ক্লিক করুন ।

টার্মিনাল ক্লিক করুন

পদক্ষেপ 7

টার্মিনাল থেকে নিম্নলিখিত কমান্ডটি দিয়ে চাপ দিন,

git push origin <branch> -f

<branch>আপনি যে শাখাকে ধাক্কা দিতে চান তার নাম কোথায় এবং এর -fঅর্থ জোর করে চাপানো। ফোর্স পুশ আপনার রিমোট রেপোতে আপনার প্রতিশ্রুতিগুলি ওভাররাইট করে দেবে, তবে আপনার ক্ষেত্রে এটি ঠিক আছে যেহেতু আপনি বলেছিলেন যে আপনি আপনার রেপো অন্য লোকের সাথে ভাগ করছেন না।

এটাই! তুমি করেছ!


4
পদক্ষেপগুলি ম্যাক সংস্করণেও মূলত একই।
রেস_সকাল

2
সাবধানতা: আপনি যদি এই প্রতিশ্রুতি বার্তা শুরু করতে চান # এটি কাজ করে না, গিট এটিকে একটি মন্তব্য হিসাবে গণ্য করে এবং আপনাকে বলেছে যে আপনার প্রতিশ্রুতি বার্তাটি খালি!
ড্যানিয়েল এডহলম ইগনাট

1
"এটি হয়ে গেল! আপনি হয়ে গেছেন!" - এটি এত সহজ যে আমি কীভাবে জানি না, একটি খরগোশ কীভাবে ধরা পড়তে পারে। প্রোগ্রামের বৈশিষ্ট্য তৈরির পরিবর্তে, যেমন একটি গুরুত্বপূর্ণ এবং প্রায়শই দেখার পরিস্থিতি। আপনি যখন তাড়াতাড়ি সবে টাইপো করেছেন তখন আপনাকে মাথাটি পুনরায় সেট করতে হবে এবং আবার নতুন প্রতিশ্রুতি তৈরি করতে হবে।
রানটিভ

67
মজাদার - আমি অবাক হই যে তারা কেন একটি সাধারণ "সম্পাদনা প্রতিশ্রুতি সম্পাদনা করুন" বিকল্পটি তৈরি করে না।
জোনাথন অ্যাকিনো

1
জিইউআই হলেও ফোর্স পুশ এখন উপলভ্য। অন্যথায় পারফেক্ট :-)
লাটিশা

43

সংস্করণে 1.9.6.1। আনপশড কমিটের জন্য।

  1. পূর্বে প্রতিশ্রুতিবদ্ধ বিবরণ ক্লিক করুন
  2. কমিট আইকন ক্লিক করুন
  3. নতুন প্রতিশ্রুতি বার্তা প্রবেশ করুন, এবং কমিট বিকল্পগুলি ড্রপডাউন থেকে " সাম্প্রতিক সর্বশেষ প্রতিশ্রুতি " চয়ন করুন।
  4. আপনার বার্তা প্রতিশ্রুতিবদ্ধ।

13

যদি মন্তব্য বার্তায় অ-ইংরাজী অক্ষর অন্তর্ভুক্ত থাকে , ব্যবহারকারী 456814 দ্বারা সরবরাহিত পদ্ধতিটি ব্যবহার করে, সেই অক্ষরগুলি প্রশ্ন চিহ্ন দ্বারা প্রতিস্থাপন করা হবে। (সোর্সট্রি Ver2.5.5.0 এর অধীনে পরীক্ষিত)

সুতরাং আমাকে নিম্নলিখিত পদ্ধতিটি ব্যবহার করতে হবে।

সতর্কতা : যদি কমিট অন্য সদস্যরা টানা থাকে তবে নীচে পরিবর্তনগুলি তাদের জন্য বিশৃঙ্খলা সৃষ্টি করতে পারে।

পদক্ষেপ 1 : সোর্সট্রি মূল উইন্ডোতে, আপনার রেপো ট্যাবটি সন্ধান করুন এবং গিট কমান্ড কনসোলটি খুলতে " টার্মিনাল " বোতামটি ক্লিক করুন ।

পদক্ষেপ 2 :

[পরিস্থিতি এ] : লক্ষ্য প্রতিশ্রুতি সর্বশেষতম।

1) গিট কমান্ড কনসোল ইনপুট

git commit --amend -m "new comment message"

2) যদি লক্ষ্য প্রতিশ্রুতি দূরবর্তী দিকে ঠেলাঠেলি করা হয়, আপনাকে জোর করে আবার চাপ দিতে হবে। গিট কমান্ড কনসোল ইনপুট

git push --force

[পরিস্থিতি বি] : লক্ষ্য প্রতিশ্রুতি সর্বশেষতম নয়।

1) গিট কমান্ড কনসোল ইনপুট

git rebase -i HEAD~n

এটি সর্বশেষ এন কমিটগুলি স্কোয়াশ করা । যেমন আপনি যদি সম্পাদনা করতে গত এক সামনে বার্তা চাই, এন 2. এই কমান্ডের একটি ষষ্ঠ উইন্ডো খুলবে, প্রতিটি লাইনের প্রথম শব্দ হল " বাছাই ", এবং আপনি "থেকে" বাছাই "কে ভিন্ন শব্দে রচনা লাইন জন্য" আপনি সম্পাদনা করতে চান তারপরে, :wqসেই ভি ভি উইন্ডোটি সংরক্ষণ এবং প্রস্থান করার জন্য ইনপুট । এখন, একটি নতুন vi উইন্ডো খোলা হবে, এই উইন্ডোটিতে আপনি আপনার নতুন বার্তাটি ইনপুট করবেন। :wqসংরক্ষণ ও প্রস্থান করতেও ব্যবহার করুন ।

2) যদি লক্ষ্য প্রতিশ্রুতি দূরবর্তী দিকে ঠেলাঠেলি করা হয়, আপনাকে জোর করে আবার চাপ দিতে হবে। গিট কমান্ড কনসোল ইনপুট

git push --force


শেষ অবধি: সোর্সট্রি মূল উইন্ডোতে, F5রিফ্রেশ করতে টিপুন ।


12

হালনাগাদ

দ্রষ্টব্য: এই উত্তরটি মূলত উইন্ডোজের জন্য সোর্সট্রি-র পুরানো সংস্করণগুলি নিয়ে লেখা হয়েছিল এবং এখন তা পুরানো।

উইন্ডোজ, সোর্সট্রি এর বর্তমান সংস্করণ, 1.5.2.0 এর জন্য আমার নতুন উত্তরটি দেখুন । আমি এই উত্তরটি historicalতিহাসিক উদ্দেশ্যে রেখে দিচ্ছি।

আসল উত্তর

উইন্ডোজে থাকাকালীন আমার কাছে কোন কমান্ড লাইন সরঞ্জাম নেই বা আমি কীভাবে এটি ব্যবহার করতে পারি তা জানিনা :( বাছাই করার একমাত্র উপায় কি? জিইউআই সমস্ত গিটের কাজগুলি আবরণ করে না? - মূল পোস্টার

গিট জিইউআই সম্পর্কিত, না, তারা গিটের সমস্ত কার্যাদি আবরণ করে নাএমনকি তারা কাছে আসে নাআমি আপনাকে গিটে একটি ভুল প্রতিশ্রুতি বার্তা কীভাবে সম্পাদনা করব তার উত্তরগুলির একটি চেক করে দেওয়ার পরামর্শ দিয়েছি?, গিটটি যথেষ্ট নমনীয় যে কমান্ড লাইন থেকে একাধিক সমাধান রয়েছে ...

সোর্সট্রি প্রকৃতপক্ষে ইতিমধ্যে এমএসএসজিট বাশ শেল নিয়ে আসতে পারে অথবা এটি স্ট্যান্ডার্ড উইন্ডোজ কমান্ড শেলটি ব্যবহার করতে সক্ষম হতে পারে। যে কোনও উপায়ে, আপনি টার্মিনাল বোতামটি ক্লিক করে এটি উত্স উত্স খুলুন:

এখানে চিত্র বর্ণনা লিখুন

আপনি এখানে কোন টার্মিনাল উত্সট্রি ব্যবহার করে (ব্যাশ বা উইন্ডোজ):

এখানে চিত্র বর্ণনা লিখুন

সোর্স ট্রি তে সমস্যা সমাধানের একটি উপায়

বলা হচ্ছে, সোর্স ট্রি এ এটি করতে পারেন তার এক উপায়। যেহেতু আপনি মন্তব্যগুলিতে উল্লেখ করেছেন যে আপনি "ত্রুটিযুক্ত প্রতিশ্রুতিতে ফিরে যেতে" আপত্তি করবেন না (যার মাধ্যমে আমি আপনাকে ধরে নিচ্ছি আসলে রিসেট করা মানে, যা গিটের একটি আলাদা অপারেশন), তারপরে এখানে পদক্ষেপগুলি দেওয়া হল:

  1. এর উপর ডান ক্লিক করে বাছাই করে Reset current branch to this commit, এবং ড্রপ ডাউন থেকে হার্ড রিসেট বিকল্পটি বেছে নিয়ে খারাপ প্রতিশ্রুতিতে সোর্সট্রি-তে একটি হার্ড রিসেট করুন।এখানে চিত্র বর্ণনা লিখুন
  2. কমিট বোতামটি ক্লিক করুন, তারপরে
  3. নীচে চেকবক্সটিতে ক্লিক করুন যা "সাম্প্রতিক প্রতিশ্রুতি সংশোধন করে" বলেছে says এখানে চিত্র বর্ণনা লিখুন
  4. আপনি বার্তায় যে পরিবর্তনগুলি চান তা করুন, তারপরে আবার কমিট ক্লিক করুন। ভাল খবর!

এই মন্তব্য সম্পর্কে :

যদি এটি সম্ভব না হয় কারণ এটি ইতিমধ্যে বিটবাকেটে ঠেলে দেওয়া হয়েছে তবে আমি একটি নতুন সংগ্রহশালা তৈরি করে আবার শুরু করতে আপত্তি করব না।

এর অর্থ কি আপনি একমাত্র ব্যক্তি রেপোতে কাজ করছেন? এটি গুরুত্বপূর্ণ কারণ আপনার সহযোগীদের সমস্যা তৈরি না করে কোনও রেপির ইতিহাস পরিবর্তন করা (যেমন প্রতিশ্রুতি সংশোধন করার মাধ্যমে) তুচ্ছ নয়। তবে, ধরে নিই যে আপনি একমাত্র ব্যক্তি রেপোতে কাজ করছেন, তারপরে আপনি পরবর্তী কাজটি করতে চান তা হল আপনার পরিবর্তিত ইতিহাসকে রিমোটে চাপ দেওয়া force

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

git push remote-repo head -f

এটি এটিও ধরে নিয়েছে যে বিটবাকেট আপনাকে কোনও রেপোতে চাপ দিতে বাধ্য করবে।

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

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