গিট সংগ্রহস্থল থেকে কীভাবে উত্স সরানো যায়


279

বেসিক প্রশ্ন: গিটার রেপোটিকে যে ক্লোনিং করা হয়েছিল, সেখান থেকে আমি কীভাবে তাকে আলাদা করব?

git branch -a শো:

* master
  remotes/origin/HEAD -> origin/master

এবং আমি উত্স সম্পর্কিত সমস্ত জ্ঞান এবং সম্পর্কিত সংশোধনগুলি মুছে ফেলতে চাই।

দীর্ঘতর প্রশ্ন: আমি একটি বিদ্যমান সাবভার্সিয়ন রেপো নিতে চাই এবং এটি থেকে অনেকগুলি ছোট গিট রেপো তৈরি করতে চাই। নতুন গিট রিপোর প্রত্যেকটিরই কেবল প্রাসঙ্গিক শাখার পুরো ইতিহাস থাকা উচিত। আমি রেপোকে কেবলমাত্র প্রয়োজনীয় সাবট্রি ব্যবহার করে ছাঁটাই করতে পারি:

git filter-branch --subdirectory-filter path/to/subtree HEAD

তবে ফলস্বরূপ রেপোতে এখনও উত্স / মাস্টার শাখার অধীনে এখন বাতিল করা সাবট্রিজগুলির সমস্ত সংশোধনী রয়েছে।

আমি বুঝতে পেরেছি যে আমি সাবট্রিশন রেপোর প্রাসঙ্গিক সাবট্রিকে প্রথম স্থানে ক্লোন করতে গিট-এসএনএন-এর জন্য-টি পতাকা ব্যবহার করতে পারি। আমি নিশ্চিত নই যে পরে git filter-branch --subdirectory-filterগিট রেপোর অনুলিপিগুলিতে একাধিক তাত্পর্য চালানোর চেয়ে আরও দক্ষ হবে তবে কোনও অবস্থাতেই আমি উত্সটির সাথে এই লিঙ্কটি ভেঙে দিতে চাই।

উত্তর:


474

মোটামুটি সহজবোধ্য:

git remote rm origin

filter-branchপ্রশ্নের হিসাবে - কেবল --prune-emptyআপনার ফিল্টার শাখা কমান্ডে যুক্ত করুন এবং এটি এমন কোনও সংশোধন সরিয়ে ফেলবে যা আসলে আপনার ফলস্বরূপ রেপোতে কোনও পরিবর্তন না করে:

git filter-branch --prune-empty --subdirectory-filter path/to/subtree HEAD

1
ধন্যবাদ। এটিই --prune-emptyআমি নিখোঁজ ছিলাম।
awy

2
হুম। পাচ্ছেনerror: Could not remove config section 'remote.origin'
দিমা লিটুয়েভ

5

বিদ্যমান উত্স সরান এবং আপনার প্রকল্প ডিরেক্টরিতে নতুন উত্স যুক্ত করুন

>$ git remote show origin

>$ git remote rm origin

>$ git add .

>$ git commit -m "First commit"

>$ git remote add origin Copied_origin_url

>$ git remote show origin

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