Git: কিভাবে শাখায় সব commits স্কোয়াশ




version-control (4)

আপনার সমস্ত কৃতিত্ব স্কোয়াশ করার আরেকটি উপায় হল মাস্টারকে সূচীটি পুনরায় সেট করা:

 git checkout yourBranch
 git reset $(git merge-base master yourBranch)
 git add -A
 git commit -m "one commit on yourBranch"

এটি নিখুঁত নয় কারণ এটি বোঝায় যে আপনার "ব্র্যাঞ্চ" কোন শাখা থেকে আসছে।
দ্রষ্টব্য: মূল শাখার সন্ধান Git এর সাথে সহজ / সম্ভাব্য নয় ( দৃশ্যমান উপায় প্রায়শই সহজতর , এখানে দেখা যায় )।

সম্পাদনা করুন: আপনি git push --force ব্যবহার করতে হবে

কার্লোটচা হোয়া মন্তব্য যোগ করেছেন :

রিসেট জন্য, আপনি করতে পারেন

git reset $(git merge-base master $(git rev-parse --abbrev-ref HEAD)) 

[যে] স্বয়ংক্রিয়ভাবে আপনি বর্তমানে যে শাখা ব্যবহার করে।
এবং যদি আপনি এটি ব্যবহার করেন, তবে আপনি একটি উপনাম ব্যবহার করতে পারেন, কারণ কমান্ডটি শাখা নামের উপর নির্ভর করে না

আমি master থেকে নতুন শাখা তৈরি করে:

git checkout -b testbranch

আমি এটা 20 commits করা।

এখন আমি 20 টি বিস্ফোরণ স্কোয়াশ করতে চাই। আমি যে সঙ্গে:

git rebase -i HEAD~20

আমি জানি না, কতজন কাজ করে? এরকম কিছু করার উপায় আছে:

git rebase -i all on this branch


আপনি কি করছেন বেশ ত্রুটি-প্রবণ। শুধু কর:

git rebase -i master

যা স্বয়ংক্রিয়ভাবে আপনার সর্বশেষ শাখায় শুধুমাত্র আপনার শাখা এর বিনিময়ে রিবেস হবে।


এটি করার আরেকটি সহজ উপায়: মূল শাখায় যান এবং একটি merge --squash । এই কমান্ড "squased" কমিট না। যখন আপনি এটি করবেন, তখন আপনার ব্র্যাঞ্চের সমস্ত বার্তা সংগ্রহ করা হবে।

$ git checkout master
$ git merge --squash yourBranch
$ git commit # all commit messages of yourBranch in one, really useful
 > [status 5007e77] Squashed commit of the following: ...

শাখাটি চেকআউট করুন যার জন্য আপনি এক কমিটিতে সমস্ত কৃতিত্ব স্কোয়াশ করতে চান। তার বলা, feature_branch বলা যাক।

git checkout feature_branch

ধাপ 1:

আপনার স্থানীয় master শাখার সাথে আপনার origin/feature_branch এর একটি নরম রিসেট করুন (আপনার চাহিদাগুলির উপর নির্ভর করে আপনি মূল / মাস্টারের সাথে পুনরায় সেট করতে পারেন)। এটি আপনার feature_branch সমস্ত অতিরিক্ত বিধি পুনরায় সেট করবে, তবে স্থানীয়ভাবে আপনার কোনও ফাইল পরিবর্তন ছাড়াই।

git reset --soft master

ধাপ ২:

তৈরি করা যাচ্ছে যে নতুন কমিটি, আপনার গিট repo ডিরেক্টরির মধ্যে সব পরিবর্তন যোগ করুন। এবং একটি বার্তা সঙ্গে একই কমিট।

git add -A && git commit -m "commit message goes here"





version-control