git - আইন - সার্টিফিকেটে বাবার নাম পরিবর্তন




লেখক পরিবর্তন করতে গিট বিভিন্ন commits সংশোধন কিভাবে (4)

Rebase / সংশোধন অদক্ষ বলে মনে হয়, যখন আপনার নখদর্পণে ফিল্টার-শাখার শক্তি থাকে:

git filter-branch --env-filter 'if [ "$GIT_AUTHOR_EMAIL" = "[email protected]" ]; then
     [email protected];
     GIT_AUTHOR_NAME="Correct Name";
     GIT_COMMITTER_EMAIL=$GIT_AUTHOR_EMAIL;
     GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"; fi' -- --all

(স্বচ্ছতার জন্য লাইন জুড়ে বিভক্ত, কিন্তু প্রয়োজনীয় নয়)

আপনি সম্পন্ন করার সময় ফলাফল পরিদর্শন করতে ভুলবেন না, এটি নিশ্চিত করার জন্য আপনি যে কোনও কিছু পরিবর্তন করেন নি তা নিশ্চিত করতে!

আমি গিটে একটি সিরিজ তৈরি করেছি এবং আমি এখন বুঝতে পারি যে আমি আমার ব্যবহারকারীর নাম এবং ব্যবহারকারীর ইমেল বৈশিষ্ট্যগুলি সঠিকভাবে (নতুন মেশিন) সেট করতে ভুলে গেছি। আমি এখনও আমার রিপোজিটরিতে এই কমিটগুলিকে ধাক্কা দিয়েছি না, তাই আমি কীভাবে এই কাজগুলি ঠিক করার আগে (আমি কেবলমাত্র মাস্টার শাখায় 3 টি সর্বশেষ কাজ করে) ঠিক করতে পারি?

আমি git reset এবং git commit -C <id> --reset-author git reset git commit -C <id> --reset-author দেখছি, কিন্তু আমি মনে করি না যে আমি সঠিক ট্র্যাকে আছি।


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

git reset HEAD~ (শেষ কমিট পূর্বাবস্থায় ফেরানো)

git config --global user.name "Your Name"

git config --global user.email [email protected]

git commit -m "message"


এক্সিকিউটিভ রিবেস পদ্ধতি এক্সিকিউটিভ সঙ্গে সংযোগে ব্যবহৃত যখন বেশ সুন্দর। আপনি কোনও নির্দিষ্ট কমিটির বিরুদ্ধে কোনও শেল কমান্ড বা রিবেজে সমস্ত কাজ চালাতে পারেন।

প্রথমে আপনার জিট লেখক সেটিংস সেট করুন

git config --global user.name "John Doe"
git config --global user.email [email protected]

তারপর প্রদত্ত SHA এর পরে সব সম্পাদক জন্য লেখক রিসেট করতে

git rebase -i YOUR_SHA -x "git commit --amend --reset-author -CHEAD"

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

প্রতি @ ডেভ এর মন্তব্য প্রতি, আপনি মূল টাইমস্ট্যাম্পগুলি বজায় রাখার সময় লেখককে পরিবর্তন করতে পারেন:

git rebase -i YOUR_SHA -x "git commit --amend --author 'New Name <[email protected]>' -CHEAD"

শুধুমাত্র শেষ কমিটির জন্য লেখক পরিবর্তন করতে:

git commit --amend --author 'Author Name <[email protected]>' --no-edit

ধরুন আপনি শেষ এনটির জন্য শুধুমাত্র লেখককে পরিবর্তন করতে চান:

git rebase -i HEAD~4 -x "git commit --amend --author 'Author Name <[email protected]>' --no-edit"

নোট

  • git commit --amend --no-edit পতাকাটি git commit --amend নিশ্চিত করে - git commit --amend একটি অতিরিক্ত নিশ্চিতকরণ জিজ্ঞাসা করে না
  • যখন আপনি git rebase -i ব্যবহার করেন, আপনি লেখককে কোথায় পরিবর্তন করতে পারেন সেগুলি নিজে নিজে নির্বাচন করতে পারেন,

আপনি যে ফাইলটি সম্পাদনা করবেন সেটি দেখতে হবে:

pick 897fe9e simplify code a little
pick abb60f9 add new feature
exec git commit --amend --author 'Author Name <[email protected]>' --no-edit
pick dc18f70 bugfix




git-rewrite-history