ধরুন আমার কাছে 5 টি স্থানীয় কমিট রয়েছে। আমি তাদের মধ্যে কেবল 2 জনকে কেন্দ্রীয়ীকৃত রেপোতে (একটি এসভিএন-স্টাইলের ওয়ার্কফ্লো ব্যবহার করে) চাপতে চাই। আমি এটা কিভাবে করবো?
এটি কার্যকর হয়নি:
git checkout HEAD~3 #set head to three commits ago
git push #attempt push from that head
এটি সমস্ত 5 স্থানীয় কমিটগুলিকে ধাক্কা দিয়ে শেষ করে।
আমি মনে করি আমি আমার কমিটগুলি পূর্বাবস্থায় ফিরিয়ে আনার জন্য গিট রিসেট করতে পারি, তারপরে গিট স্ট্যাশ এবং তারপরে গিট পুশ করতে পারি - তবে আমি ইতিমধ্যে কমিটেড ম্যাসেজগুলি লিখেছি এবং ফাইলগুলি সংগঠিত করেছি এবং সেগুলি পুনরায় করতে চাই না।
আমার অনুভূতি হ'ল ধাক্কা দিতে বা পুনরায় সেট করতে কিছু পতাকা কার্যকর হবে।
যদি এটি সহায়তা করে তবে আমার গিট কনফিগারেশনটি এখানে
[ramanujan:~/myrepo/.git]$cat config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = ssh://server/git/myrepo.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
master~3
। কাঙ্ক্ষিত "আপ" কমিটের যে কোনও রেফারেন্স সমানভাবে বৈধ, যেমনHEAD~3
বাHEAD~~~
, বা নির্দিষ্ট এসএইচএ, বা এমন ট্যাগ যা কোনও লেবেল প্রতিশ্রুতিবদ্ধ।