একটি টান অনুরোধ আপডেট করতে
একটি টানার অনুরোধটি আপডেট করতে (পয়েন্ট # 1), আপনাকে কেবল একই কাজটি করতে হবে টান অনুরোধটি একই শাখায় চেকআউট করে আবার এটিতে চাপ দিন:
cd /my/fork
git checkout master
...
git commit -va -m "Correcting for PR comments"
git push
Alচ্ছিক - সাফল্য প্রতিশ্রুতিবদ্ধ ইতিহাস
আপনাকে আপনার প্রতিশ্রুতিগুলি একসাথে স্কোয়াশ করতে বলা হতে পারে যাতে সংগ্রহস্থলটির ইতিহাস পরিষ্কার থাকে, বা আপনি নিজের মধ্যস্থতার কমিটিগুলি মুছে ফেলতে চান যা আপনার বারার অনুরোধে "বার্তা" থেকে বিভ্রান্ত হয় (পয়েন্ট # 2)। উদাহরণস্বরূপ, যদি আপনার প্রতিশ্রুতিবদ্ধ ইতিহাসটি এরকম দেখাচ্ছে:
$ git remote add parent git@github.com:other-user/project.git
$ git fetch parent
$ git log --oneline parent/master..master
e4e32b8 add test case as per PR comments
eccaa56 code standard fixes as per PR comments
fb30112 correct typos and fatal error
58ae094 fixing problem
জিনিসগুলি একসাথে স্কোয়াশ করা ভাল ধারণা যাতে তারা একক প্রতিশ্রুতি হিসাবে উপস্থিত হয়:
$ git rebase -i parent/master
এটি আপনাকে কীভাবে আপনার টানার অনুরোধের ইতিহাসটি আবার লিখতে হবে তা চয়ন করতে অনুরোধ করবে, নিম্নলিখিতটি আপনার সম্পাদকের মধ্যে থাকবে:
pick 58ae094 fixing actual problem
pick fb30112 correct typos
pick eccaa56 code standard fixes
pick e4e32b8 add test case as per PR comments
যে কোনও প্রতিশ্রুতির জন্য আপনি আগের প্রতিশ্রুতিতে অংশ নিতে চান - স্কোয়াশে পরিবর্তন করুন:
pick 58ae094 fixing actual problem
squash fb30112 correct typos
squash eccaa56 code standard fixes
squash e4e32b8 add test case as per PR comments
এবং আপনার সম্পাদক বন্ধ করুন। গিট তারপরে ইতিহাসটি পুনর্লিখন করবে এবং সম্মিলিত প্রতিশ্রুতিবদ্ধতার জন্য একটি প্রতিশ্রুতি বার্তা দেওয়ার জন্য আপনাকে অনুরোধ করবে। সেই অনুযায়ী সংশোধন করুন এবং আপনার প্রতিশ্রুতিবদ্ধ ইতিহাস এখন সংক্ষিপ্ত হবে:
$ git log --oneline parent/master..master
9de3202 fixing actual problem
আপনার কাঁটাচামচ এটি চাপুন:
$ git push -f
Counting objects: 19, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (11/11), 978 bytes, done.
Total 11 (delta 9), reused 7 (delta 6)
To git@github.com:me/my-fork.git
f1238d0..9de3202 HEAD -> master
এবং আপনার টানার অনুরোধটিতে একক প্রতিশ্রুতি থাকবে, পূর্বে কয়েকটি পরিবর্তনগুলিতে বিভক্ত সমস্ত পরিবর্তনকে একত্রিত করে।
সর্বজনীন ভাণ্ডারে ইতিহাস পরিবর্তন করা একটি খারাপ জিনিস
ইতিহাসের পুনর্লিখন এবং git push -f
এমন একটি শাখায় ব্যবহার করা যা সম্ভবত অন্য কেউ ইতিমধ্যে ক্লোন করেছেন এটি একটি খারাপ জিনিস - এটি সংগ্রহস্থলের ইতিহাস এবং চেকআউটের ইতিহাসকে বিচ্ছিন্ন করার কারণ করে।
তবে, আপনার ভাণ্ডার ইতিহাস সংশোধন করে আপনি যে ভাণ্ডারকে একীভূত করার প্রস্তাব দিচ্ছেন তা সংশোধন করার জন্য - এটি একটি ভাল জিনিস। যেমন আপনার টানার অনুরোধগুলি থেকে "শব্দ" স্কোয়াশ করার কোনও সংরক্ষণ নেই।
শাখায় একটি নোট
উপরের দিকে আমি master
আপনার কাঁটাচামচের শাখা থেকে আগত অনুরোধটি দেখাব, এটির সাথে অগত্যা কোনও ভুল নেই তবে এটি নির্দিষ্ট সীমাবদ্ধতা তৈরি করে যেমন, এটি যদি আপনার স্ট্যান্ডার্ড কৌশল হয় তবে কেবল প্রতি ভান্ডার প্রতি এক জন পিআর খুলতে সক্ষম হবেন । আপনার প্রস্তাবিত প্রতিটি স্বতন্ত্র পরিবর্তনের জন্য একটি শাখা তৈরি করা যদিও এটি একটি ভাল ধারণা:
$ git branch feature/new-widgets
$ git checkout feature/new-widgets
...
Hack hack hack
...
$ git push
# Now create PR from feature/new-widgets
master
একটি শাখা খুব, তাই টেকনিক্যালি এটা কোন ব্যাপার না হয় :)