ইতিহাস ছাড়া কীভাবে নতুন শাখা ঠেলা যায়


97

আমার দুটি অপ্রাসঙ্গিক শাখা, মাস্টার এবং কনফিগার সহ গিট রেপো রয়েছে। আমি কনফিগার তৈরি করেছি, সমস্ত ফাইল মুছে ফেলেছি এবং তারপরে কেবল কনফিগারেশন ফাইলগুলিতে রেখেছি। এখন আমি এটিকে দূরবর্তী রেপোতে চাপতে চাই, তবে এটি নতুন, খালি শাখা হিসাবে ছিল (আমার সমস্ত পরিবর্তনের লগ এবং মূল শাখার পুরানো সংস্করণগুলি ছাড়াই)।

আমি কীভাবে সমস্ত ইতিহাস মুছে ফেলতে পারি এবং এটি ঠেলাতে পারি?


4
এটি দেখতে খুব সাদৃশ্যপূর্ণ: stackoverflow.com/questions/1384325/…
চিহ্নিত করুন

উত্তর:


159

সমস্ত ফাইল মুছে ফেলা ইতিহাস থেকে মুক্তি পাবে না। আপনাকে এমন একটি শাখা তৈরি করতে হবে যার প্রথমে কোনও ইতিহাস নেই এবং আপনার কনফিগার ফাইলগুলি যুক্ত করতে হবে। এই দিনগুলির git checkoutএকটি --orphanবিকল্প রয়েছে যা কোনও ইতিহাস ছাড়াই একটি শাখা তৈরি করে। --orphanবিকল্পের তথ্য এখানে :

--orphan <নতুন> ব্র্যাঙ্ক>

<স্টার্ট_পয়েন্ট> থেকে শুরু করে <নতুন> ব্র্যাঞ্চ> নামে একটি নতুন এতিম শাখা তৈরি করুন এবং এতে স্যুইচ করুন। এই নতুন শাখায় করা প্রথম প্রতিশ্রুতির কোনও পিতা-মাতা থাকবে না এবং এটি অন্য ইতিহাস থেকে সম্পূর্ণ সংযোগ বিচ্ছিন্ন ও প্রতিশ্রুতিবদ্ধ নতুন ইতিহাসের মূল হবে।

সূচক এবং কার্যক্ষম গাছটি এমনভাবে সামঞ্জস্য করা হয়েছে যেন আপনি আগে "গিট চেকআউট <স্টার্ট_পয়েন্ট>" চালিয়েছিলেন। এটি আপনাকে নতুন ইতিহাস শুরু করতে দেয় যা মূল প্রতিশ্রুতিবদ্ধ করতে সহজেই "গিট কমিট -a" চালিয়ে <স্টার্ট_পয়েন্ট> এর অনুরূপ পাথের একটি সেট রেকর্ড করে।

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

আপনি যদি কোনও সংযোগ বিচ্ছিন্ন ইতিহাস শুরু করতে চান যা <স্টার্ট_পয়েন্ট> এর থেকে সম্পূর্ণ পৃথক পৃথক পাথের একটি সেট রেকর্ড করে, তবে আপনাকে "গিট আরএম-আরএফ" চালিয়ে অনাথ শাখা তৈরি করার পরে সূচি এবং কার্যক্ষম গাছটি সাফ করা উচিত। " কার্যকারী গাছের শীর্ষ স্তর থেকে। এর পরে আপনি আপনার নতুন ফাইলগুলি প্রস্তুত করার জন্য, কার্যক্ষম গাছটিকে পুনরায় তৈরি করে অন্য কোথাও থেকে অনুলিপি করে, টারবল বের করে আনতে প্রস্তুত হবেন

চেকআউট করার জন্য ডকুমেন্টেশনের লিঙ্কটি এখানে । আপনি পাশাপাশি চালাতে পারেন git help checkout

একবার আপনি ইতিহাস ব্যতীত আপনার শাখাটি তৈরি করে ফেললেন, তারপরে আপনি এটিকে সার্ভারে চাপ দিলে এটির ইতিহাসও থাকবে না। এফডাব্লুআইডাব্লু, এটি git push"দূরবর্তী শাখাটিকে আমার স্থানীয় হিসাবে একই হিসাবে দেখায়" হিসাবে ভাবতে সহায়তা করে । সুতরাং আপনার যদি ইতিহাস থাকে এবং ঠেলাঠেলি করে তবে এর ইতিহাস থাকবে। আপনি যদি না করেন তবে ধাক্কা দেওয়া শাখাটি হবে না।


39

আমি কীভাবে সমস্ত ইতিহাস মুছে ফেলতে পারি এবং এটি ঠেলাতে পারি?

git checkout --orphan <name_you_choose_for_orphan_branch>
git commit

তাহলে আপনি আপনার চালাতে পারেন

git push <remote-name> <branch-name>


সিএফ. এই ওয়ান লাইনার


17

ব্যক্তিগত তথ্য ভাগ করে নেওয়ার বা আমার ইতিহাস মোছা না করে কোনও ফ্রিল্যান্সারকে কিছু কোড প্রেরণ করার জন্য আমার এটি করা দরকার।

আপনারা কেউ যদি সোর্স ট্রি ব্যবহার করছেন, আমি এটি এটি পরিচালনা করেছিলাম। উত্স নিয়ন্ত্রণ ব্যবস্থাপনার সাথে আমি খুব অপরিচিত হওয়ায় আমি কিছু ভুল করেছি বা কিছু ভুলে যাচ্ছি কিনা দয়া করে আমাকে জানান।

  1. আমি উত্স গাছের টার্মিনাল বোতামে গিয়েছিলাম।
  2. কমান্ডটি ব্যবহার করে আমি একটি নতুন 'এতিম' শাখা তৈরি করেছি: 'গিট চেকআউট --অরফান ক্লিন-ভার' যেখানে ক্লিন-ভার আমার শাখার নাম
  3. আমি টার্মিনালটি বন্ধ করে দিয়েছিলাম এবং দেখলাম আমার প্রতিশ্রুতিবদ্ধ লগ সাফ হয়ে গেছে কারণ আমি একটি নতুন অনাথ শাখায় ছিলাম। আমি আমার সমস্ত উত্স কোড মঞ্চায়িত করেছি এবং পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ।
  4. আমি আমার বিটবাকেট সংগ্রহস্থলটি সংগ্রহস্থল> রিমোট বা সংগ্রহস্থল> সংগ্রহস্থল সেটিংস> অ্যাড যোগ করে সেট আপ করি।
  5. আমি এটি বন্ধ করে দিয়ে পুশ বাটনে ক্লিক করেছি
  6. আমি আমার নতুন 'ক্লিন-ভার' শাখাটি বেছে নিয়েছি ঠিক আছে।

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

এই কেউ সাহায্য করে আউট আশা করি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.