git - কিভাবে বিদ্যমান পরিবর্তন, unpushed commits?




git-commit git-rewrite-history (18)

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

আমি কিভাবে বার্তা প্রেরণ / ফাইল পরিবর্তন করতে পারি? কমিটি এখনও ধাক্কা না করা হয়েছে।


সাম্প্রতিক কমিটির বার্তা সংশোধন করা হচ্ছে

git commit --amend

আপনার সম্পাদকটি খুলবে, যা আপনাকে সাম্প্রতিক কমিটির প্রতিশ্রুতি বার্তা পরিবর্তন করার অনুমতি দেবে। অতিরিক্তভাবে, আপনি কমান্ড লাইন সরাসরি কমান্ড লাইনে সেট করতে পারেন:

git commit --amend -m "New commit message"

... তবে, এটি মাল্টি-লাইনকে বার্তা বা ছোট সংশোধনগুলি প্রবেশ করতে আরো জটিল করে তুলতে পারে।

এই কাজ করার আগে আপনি যে কোনও কার্যকরী অনুলিপি পরিবর্তন না করে নিশ্চিত হন বা তারাও প্রতিশ্রুতিবদ্ধ হবে। ( Unstaged পরিবর্তন প্রতিশ্রুতিবদ্ধ হবে না।)

আপনি ইতিমধ্যে আপনার রিমোট শাখা থেকে push করা হয়েছে যে একটি কমিটির বার্তা পরিবর্তন

আপনি যদি ইতিমধ্যে আপনার রিমোট শাখাতে আপন আপন আপত্তিজনক পদক্ষেপটি ধাক্কা দিচ্ছেন, তবে আপনাকে এই সাথে সংঘটিত ধাক্কা জোরদার করতে হবে:

git push <remote> <branch> --force
# Or
git push <remote> <branch> -f

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

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

ইন্টারেক্টিভ রিবেস ব্যবহার করুন

আরেকটি বিকল্প ইন্টারেক্টিভ রিবেস ব্যবহার করা হয়।
এটি আপনাকে সর্বশেষ বার্তা না থাকলেও আপনি যে বার্তাটি আপডেট করতে চান তা সম্পাদনা করতে পারবেন।

একটি গিট স্কোয়াশ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

// X is the number of commits to the last commit you want to be able to edit
git rebase -i HEAD~X

একবার আপনি আপনার commits squash - বার্তা সম্পাদনা করার জন্য e/r নির্বাচন করুন

ইন্টারেক্টিভ রিবেস সম্পর্কে গুরুত্বপূর্ণ নোট

যখন আপনি git rebase -i HEAD~X ব্যবহার git rebase -i HEAD~X X বেশি হতে পারে। গিট শেষ X টিতে সমস্ত কৃতিত্ব "সংগ্রহ" করবে এবং যদি সেই সীমাটির মধ্যে কোথাও কোনও মার্জ থাকে তবে আপনি সমস্ত মতামত দেখতে পাবেন যাতে ফলাফল X + হবে।

ভালো পরামর্শ:

যদি আপনাকে একাধিক শাখার জন্য এটি করতে হয় এবং সামগ্রীটি সংশোধন করার সময় আপনি দ্বন্দ্বের মুখোমুখি হন, তবে git rerere সেট আপ করুন এবং git rerere স্বয়ংক্রিয়ভাবে আপনার জন্য সেই দ্বন্দ্বগুলির সমাধান করুন।

🔥 হট টিপ

আপনি শেষ git commit বার্তা সংশোধন করতে এবং দূরবর্তীতে এটি ধাক্কা দিতে একটি ছোট bash ফাংশনও লিখতে পারেন। আমাকে সব সময় সাহায্য করে। এখানে ফাংশন; আপনার .bashrc বা অনুরূপ। .zshrc ফাইলে রাখুন এবং আপনার শেল পুনরায় লোড করুন।

# Amend the last commit message
# Push the changes to remote by force
# USAGE: gamend "Your New Commit Msg"
function gamend() {
    git commit --amend -m "[email protected]"
    git push --force
}

নথিপত্র


সংশোধন করা

আপনি এখানে অপশন একটি দম্পতি আছে। আপনি করতে পারেন

git commit --amend

যতদিন এটি আপনার শেষ কমিটি।

ইন্টারেক্টিভ রিবেস

অন্যথা যদি এটি আপনার শেষ কাজ না হয় তবে আপনি ইন্টারেক্টিভ রিবেস করতে পারেন,

git rebase -i [branched_from] [hash before commit]

তারপর ইন্টারেক্টিভ রিবেস ভিতরে আপনি কেবল যে কমিট সম্পাদনা যোগ করুন। এটি আসে যখন একটি git commit --amend করুন - commit বার্তা git commit --amend এবং পরিবর্তন। আপনি যে বিন্দু বিন্দু আগে ফিরে রোল করতে চান তাহলে আপনি git reflog ব্যবহার করতে পারেন এবং শুধুমাত্র যে কমিট মুছে দিন। তারপর আপনি আবার একটি git commit না।


আপনি গিট রিবাজিং ব্যবহার করতে পারেন। উদাহরণস্বরূপ, যদি আপনি bbc643cd এ ফেরত পরিবর্তন করতে চান, চালান

$ git rebase bbc643cd^ --interactive

ডিফল্ট এডিটরতে, 'পিক' পরিবর্তন করুন, যে লাইনটি আপনি সংশোধন করতে চান তার মধ্যে 'সম্পাদনা' করতে। আপনার পরিবর্তন করুন এবং তারপর তাদের সাথে মঞ্চ

$ git add <filepattern>

এখন আপনি ব্যবহার করতে পারেন

$ git commit --amend

কমিটি পরিবর্তন, এবং যে পরে

$ git rebase --continue

আগের মাথা কমিট ফিরে ফিরে।


আপনি যদি জিআইটি GUI টুলটি ব্যবহার করেন তবে শেষ কমিট সংশোধনের নামে একটি বোতাম রয়েছে। যে বাটন ক্লিক করুন এবং তারপর এটি আপনার শেষ কমিট ফাইল এবং বার্তা প্রদর্শন করা হবে। শুধু সেই বার্তাটি সম্পাদনা করুন এবং আপনি এটি নতুন প্রতিশ্রুতি বার্তা সহ প্রেরণ করতে পারেন।

অথবা কনসোল / টার্মিনাল থেকে এই কমান্ড ব্যবহার করুন:

git commit -a --amend -m "My new commit message"

আপনি যদি শুধুমাত্র সর্বশেষ কমিটির ব্যবহার সম্পাদনা করতে চান:

git commit --amend

অথবা

git commit --amend -m 'one line message'

কিন্তু যদি আপনি সারিতে বেশ কয়েকটি সম্পাদনা সম্পাদনা করতে চান তবে আপনাকে পরিবর্তে রিবাজিং ব্যবহার করতে হবে:

git rebase -i <hash of one commit before the wrong commit>

উপরের একটি ফাইলের মতো একটি এডিট সম্পাদনা / ই বা অন্য একটি বিকল্প লিখুন এবং সংরক্ষণ করুন এবং প্রস্থান করুন।

এখন আপনি প্রথম ভুল কমিটিতে হবে। ফাইলগুলিতে পরিবর্তন করুন, এবং তারা স্বয়ংক্রিয়ভাবে আপনার জন্য স্টেজ হয়ে যাবে। আদর্শ

git commit --amend

সংরক্ষণ এবং যে প্রস্থান এবং টাইপ করুন

git rebase --continue 

আপনার সমস্ত নির্বাচন শেষ না হওয়া পর্যন্ত পরবর্তী নির্বাচনে যেতে।

উল্লেখ্য যে এই জিনিসগুলি সেই বিশেষ কমিটির পরে আপনার সমস্ত SHA হ্যাশ পরিবর্তন করে।


আপনি যদি সংশোধন করতে চান তবে এটি সাম্প্রতিকতম নয়:

  1. git rebase --interactive $parent_of_flawed_commit

    আপনি যদি কয়েকটি ত্রুটিযুক্ত ত্রুটি সংশোধন করতে চান, তবে তাদের মধ্যেতম প্রাচীনতম পিতা-মাতাকে পাস করুন।

  2. আপনি যা দিয়েছেন তার থেকে সমস্ত সম্পাদক তালিকা সহ একটি সম্পাদক আসবেন।

    1. আপনি যে reword ঠিক করতে চান তার সামনে reword (বা গিটের পুরানো সংস্করণগুলিতে edit ) পরিবর্তন করুন।
    2. একবার আপনি সংরক্ষণ, গিট তালিকাভুক্ত Commutes পুনরায় চালানো হবে।

  3. প্রতিটি কমিটির জন্য আপনি পুনঃব্যবহার করতে চান, গিট আপনাকে আপনার এডিটরটিতে ফিরিয়ে আনবে। প্রতিটি সম্পাদনা করার জন্য আপনি সম্পাদনা করতে চান, গিট আপনাকে শেলের মধ্যে ফেলে দেয়। যদি আপনি শেলে আছেন:

    1. আপনি চান কোন ভাবে পরিবর্তন করুন।
    2. git commit --amend
    3. git rebase --continue

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

আপনি ইতিমধ্যে push করা যে পরিবর্তন পরিবর্তন করতে চান না মনে রাখবেন। অথবা হয়ত আপনি করতে পারেন, কিন্তু সেই ক্ষেত্রে আপনাকে তাদের সবার সাথে যোগাযোগ করা এবং তাদের উপরে কাজ করা সবার সাথে যোগাযোগ করার জন্য দুর্দান্ত যত্ন নিতে হবে। কেউ রিবেস বা কোন প্রকাশিত শাখায় রিসেট করার পরে আমি পুনরুদ্ধার / পুনঃসংস্কৃতি কীভাবে করব?


আমি এই ভাবে পছন্দ।

git commit --amend -c <commit ID>

অন্যথায়, একটি নতুন কমিটির আইডি সঙ্গে একটি নতুন কমিটি হবে


আমি যতটা সম্ভব জিটি জিওআই ব্যবহার করি, এবং এটি আপনাকে শেষ কমিটির সংশোধন করার বিকল্প দেয়:

এছাড়াও, git rebase -i origin/master একটি চমৎকার মন্ত্র যা সর্বদা আপনাকে মাস্টারের শীর্ষস্থানে সম্পন্ন করে উপস্থাপন করে এবং আপনাকে সংশোধন, মুছে ফেলার, পুনর্বিন্যাস বা স্কোয়াশ করার বিকল্প দেয়। প্রথম যে হ্যাশ হোল্ড পেতে কোন প্রয়োজন।


এই প্রশ্নে অনেকগুলি উত্তর রয়েছে কিন্তু ভিআইএম ব্যবহার করে পুরানো প্রতিশ্রুতি বার্তাগুলি কীভাবে পরিবর্তন করবেন তা বিস্তারিতভাবে ব্যাখ্যা করে না। আমি নিজেকে এই কাজ করার জন্য আটকে ছিলাম, তাই এখানে আমি বিস্তারিতভাবে লিখব কিভাবে আমি এটি বিশেষ করে তাদের জন্য যারা ভিআইমে কোন অভিজ্ঞতা নেই!

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

ধরুন আপনি আপনার পাঁচটি সর্বশেষ কাজগুলি পরিবর্তন করতে চান, তাহলে আপনি এটি টার্মিনালে টাইপ করুন:

git rebase -i HEAD~5 * যেখানে 5 টি বার্তা প্রেরণ করতে চান যা আপনি পরিবর্তন করতে চান। (তাই যদি আপনি 10 ম পরিবর্তন করতে চান তবে শেষ টাইমটি 10 ​​টাইপ করুন)

এই কমান্ডটি আপনাকে ভিআইএম-এ নিয়ে যাবে যেখানে আপনি আপনার কমিটির ইতিহাস সম্পাদনা করতে পারেন। আপনি শীর্ষে আপনার শেষ 5 টিটি দেখতে পাবেন:

pick <commit hash> commit message

পরিবর্তে আপনি লিখুন লিখুন প্রয়োজন। আপনি আইএম টাইপ করে ভিআইএম এ এটি করতে পারেন, যা আপনাকে ইনসার্ট-মোডে যেতে দেয়। (আপনি নীচে INSERT শব্দটি দিয়ে সন্নিবেশ মোডে আছেন তা দেখেন) আপনি এই পরিবর্তনের জন্য পরিবর্তনের পরিবর্তে শব্দ পরিবর্তন করতে চান

তারপরে আপনাকে এই স্ক্রিনটি সংরক্ষণ এবং ছেড়ে দিতে হবে, আপনি প্রথমে এসসি বাটন টিপে 'কমান্ড মোড' এ যান। (আপনি কমান্ড-মোডে আছেন কিনা তা পরীক্ষা করতে পারেন যদি নীচের অংশে INSERT শব্দটি অদৃশ্য হয়ে যায়) তারপর আপনি টাইপ করে একটি কমান্ড টাইপ করতে পারেন wq সংরক্ষণ এবং প্রস্থান করার কমান্ড wq । সুতরাং যদি আপনি টাইপ করুন :wq আপনি সঠিক তিনি ট্র্যাক করছি।

তারপরে ভিআইএম আপনি যে প্রতিমূর্তি পুনঃব্যবহার করতে চান তার উপরে যান, এখানে আপনি আসলে বার্তা প্রেরণ করতে পারেন। আপনি INSERT মোডে গিয়ে, প্রেরণ বার্তাটি পরিবর্তন করে, কমান্ড-মোডে গিয়ে এবং সংরক্ষণ এবং প্রস্থান করে এটি করবেন। এই 5 বার করুন এবং আপনি ভিআইএম আউট!

তারপরে, যদি আপনি ইতিমধ্যেই আপনার ভুল git push --force আপনাকে git push --force ওভাররাইট করার জন্য git push --force হবে। মনে রাখবেন যে git push --force কাজটি বেশ বিপজ্জনক ব্যাপার, সুতরাং আপনার ভুল git push --force পরে সার্ভার থেকে কেউ টেনে নিল না তা নিশ্চিত করুন!

এখন আপনি আপনার প্রতিশ্রুতি বার্তা পরিবর্তন করেছেন!

(যেমন আপনি দেখেন আমি ভিআইএম তে অভিজ্ঞ নই, তাই যদি আমি কী ঘটতেছি তা ব্যাখ্যা করতে ভুল 'লিংগো' ব্যবহার করি, তাহলে আমাকে সংশোধন করতে বিনা দ্বিধায়!)


এক লাইনের মধ্যে নতুন প্রতিশ্রুতি বার্তা সহ আপনার শেষ ভুল প্রতিশ্রুতি বার্তা আপডেট করুন:

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

অথবা, নীচের মত জিট রিসেট চেষ্টা করুন:

# You can reset your head to n number of commit
# NOT a good idea for changing last commit message
# but you can get an idea to split commit into multiple commits
git reset --soft HEAD^

# it will reset you last commit. Now, you
# can re-commit it with new commit message.

ছোট commits মধ্যে বিভক্ত বিভক্ত রিসেট ব্যবহার করে

git reset আপনাকে একাধিক কিতাবে একটি কমিট বিরতিতে সহায়তা করতে পারে:

# reset your head. I am resetting to last commits:
git reset --soft HEAD^
# (you can reset multiple commit by doing HEAD~2(no. of commits)

# Now, reset your head for splitting it to multiple commits
git reset HEAD

# add and commit your files seperately to make multiple commits: e.g
git add app/
git commit -m "add all files in app directory"

git add config/
git commit -m "add all files in config directory"

এখানে আপনি সফলভাবে দুটি কৃতিত্ব মধ্যে আপনার শেষ প্রতিশ্রুতি ভাঙ্গা আছে।


পূর্ববর্তী কমিটির সংশোধন করতে, আপনার যে পরিবর্তনগুলি চান তা করুন এবং সেগুলি পরিবর্তন করুন এবং তারপরে চালান

git commit --amend

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

পূর্ববর্তী কমিটি সংশোধন এবং একই লগ বার্তা রাখা, রান

git commit --amend -C HEAD

সম্পূর্ণরূপে অপসারণ করে পূর্ববর্তী কমিট ঠিক করতে, চালান

git reset --hard HEAD^

আপনি একাধিক কমিটি বার্তা সম্পাদনা করতে চান, চালান

git rebase -i HEAD~commit_count

( Comm_count প্রতিস্থাপন করুন যা আপনি সম্পাদন করতে চান তার সংখ্যা সহ।) এই কমান্ডটি আপনার এডিটরটি চালু করে। "পিক" এর পরিবর্তে "সম্পাদনা" হিসাবে প্রথম কমিটির (আপনি যেটি পরিবর্তন করতে চান) চিহ্নিত করুন, তারপরে সংরক্ষণ করুন এবং আপনার সম্পাদক থেকে প্রস্থান করুন। আপনি পরিবর্তন করতে চান পরিবর্তন করুন এবং তারপর চালানো

git commit --amend
git rebase --continue

দ্রষ্টব্য: আপনি git commit --amend দ্বারা সম্পাদিত সম্পাদক থেকে "আপনি চান এমন পরিবর্তন করুন" করতে পারেন


বাহ, তাই এই কাজ করার অনেক উপায় আছে।

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

git reset --soft HEAD~1
git commit -m 'New and corrected commit message'

যদি আমি কোনও ফাইল যুক্ত করতে বা পরিবর্তন করতে ভুলে যাই তবে সর্বদা এটি করি।

--soft পরিবর্তে --soft উল্লেখ করতে --soft না, অন্যথায় আপনি যে সম্পূর্ণরূপে হারান হারান।


যদি আপনাকে একাধিক শাখাগুলিতে একটি পুরানো কমিটির বার্তা পরিবর্তন করতে হয় (অর্থাত্ ভুল বার্তা সহ কমিটটি একাধিক শাখাগুলিতে উপস্থিত থাকে) তাহলে আপনি এটি ব্যবহার করতে পারেন:

git filter-branch -f --msg-filter \
'sed "s/<old message>/<new message>/g"' -- --all

Git পুনর্লিখনের জন্য একটি অস্থায়ী ডিরেক্টরি তৈরি করবে এবং অতিরিক্তভাবে রেফারেন্স refs/original/ পুরানো refs/original/ ব্যাকআপ করবে।

  • -f অপারেশন কার্যকর করা হবে। অস্থায়ী ডিরেক্টরি ইতিমধ্যে উপস্থিত থাকলে এটির প্রয়োজন হয় অথবা যদি রেফারেন্স refs/original অধীনে ইতিমধ্যে সংরক্ষিত রেফারেন্স থাকে। যদি এমন হয় না তবে আপনি এই পতাকাটি ছেড়ে দিতে পারেন।

  • -- সংশোধন বিকল্প থেকে ফিল্টার-শাখা অপশন আলাদা।

  • --all সব নিশ্চিত করা হবে, যে সব শাখা এবং ট্যাগ পুনরায় লেখা হয়।

আপনার পুরানো রেফারেন্সের ব্যাকআপের কারণে, কমান্ড কার্যকর করার আগে আপনি সহজেই রাষ্ট্রটিতে ফিরে যেতে পারেন।

বলুন, আপনি আপনার মাস্টার পুনরুদ্ধার করতে চান এবং শাখা old_master এটি অ্যাক্সেস করতে চান:

git checkout -b old_master refs/original/refs/heads/master

যদি আপনি শুধুমাত্র আপনার শেষ বার্তাটি পরিবর্তন করতে চান তবে আপনাকে কেবলমাত্র পতাকাটি বা তার শর্টকাটটি ব্যবহার করতে হবে - commit --amend -

git commit --amend -o -m "New commit message"

এটি আপনি স্টেজড স্টাফের সাথে আপত্তিজনকভাবে আপনার প্রতিশ্রুতি উন্নত করবেন না তা নিশ্চিত করে। অবশ্যই এটি একটি উপযুক্ত $EDITOR কনফিগারেশন আছে ভাল। তারপরে আপনি -m বিকল্পটি ছেড়ে যেতে পারেন, এবং git পুরানোটির সাথে প্রেরণ বার্তাটি প্রাক-পূরণ করবে। এই ভাবে এটি সহজে সম্পাদনা করা যেতে পারে।


আমি নিম্নলিখিত ব্যবহার করতে চান:

  1. git status
  2. git add --all
  3. git commit -am "message goes here about the change"
  4. git pull <origin master>
  5. git push <origin master>

আপনি git-rebase-reword ব্যবহার করতে পারেনgit-rebase-reword

এটি কোন কমিটি (শুধু শেষ নয়) সম্পাদনা করার জন্য ডিজাইন করা হয়েছে commit --amend

$ git rebase-reword <commit-or-refname>

এটি একটি কমিট সংশোধন করার জন্য ইন্টারেক্টিভ রিবেস উপর কর্মের পরে নামকরণ করা হয়: "reword"। এই পোস্টটি দেখুন এবং man সেকশন ইন্টারেক্টিভ মোড-

উদাহরণ:

$ git rebase-reword b68f560
$ git rebase-reword HEAD^

আমি ওরফে যোগ করেছেন reci, recmএর জন্য recommit (amend)এটা এখন আমি এটা দিয়ে কি করতে পারেন git recmবা git recm -m

$ vim ~/.gitconfig

[alias]

    ......
    cm = commit
    reci = commit --amend
    recm = commit --amend
    ......

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

git commit --amend -m "T-1000, advanced prototype"
git push --force

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





amend