আমি কীভাবে কোনও গিট শাখাটিকে তার নিজস্ব ভাণ্ডারে স্থানান্তর করতে পারি?


180

আমার একটি শাখা রয়েছে যা আমি একটি পৃথক গিট সংগ্রহস্থলে যেতে চাই এবং আদর্শভাবে সেই শাখার ইতিহাস প্রক্রিয়াতে রাখি। এখনও অবধি আমি দেখছিলাম git filter-branch, তবে আমি যা করতে চাই তা এটি করতে পারে কিনা তা আমি খুঁজে বের করতে পারছি না।

আমি কীভাবে গিট শাখাটি তার নিজস্ব ভাণ্ডারে বের করতে পারি?

উত্তর:


280

আপনি সহজেই একটি শাখাকে নতুন ভাণ্ডারে ঠেলাতে পারেন। এর ইতিহাসের সমস্ত এটি দিয়ে যাবে। তারপরে আপনি মূল সংগ্রহস্থল থেকে শাখাটি মুছবেন কিনা তা চয়ন করতে পারেন।

যেমন

git push url://to/new/repository.git branch-to-move:new-branch-name

একটি নতুন সংগ্রহস্থলের জন্য, নতুন-শাখা-নাম সাধারণত মাস্টার হয়।

একটি নতুন, খালি সংগ্রহস্থল তৈরি করে কাজ করা যেতে পারে git init


15
কারও অবাক হওয়ার ক্ষেত্রে, আমি একটি গিট সংগ্রহস্থল ডিরেক্টরিতে ইউআরএল প্রতিস্থাপন করেছি এবং এটি পুরোপুরি কার্যকর হয়েছে।
অপাজো

48
আপনি নতুন ভান্ডারে শাখার নামও রাখতে পারেন: git push url://to/new/repository.git branch-to-move:new-branch-name
ইয়ভেস ভ্যান ব্রোখোভেন

4
ইয়ভেসের উপরের মন্তব্যটি সঠিক, অন্যথায় আপনার সেখানে কোনও মাস্টার নেই এবং ক্লোনিং প্রক্রিয়াটি শেষ হবে warning: remote HEAD refers to nonexistent ref, unable to checkout.। যদি ইতিমধ্যে সেই পর্যায়ে থাকে তবে কেবলমাত্র সাথে যান git checkout -b branch-to-moveএবং আপনি নিরাপদ হন বা আপনি কেবল git checkout -b masterআপনার মাস্টার শাখা রাখতে চলে যান :)
আইন তোহভ্রি

git checkout -b masterএটি আমার স্ক্রিনে থাকা সমস্যাটি সমাধান করে error: src refspec master does not match any.(কেবল
আশ্চর্যই

2
যদি এই উত্তরটি আপনার জন্যও বিভ্রান্তিকর হয়, তবে এটি এখানে কাজ করার জন্য আমি এটি অনুধাবন করেছি: 1) আপনার টার্মিনালে, আপনি একটি নতুন রেপো তৈরি করতে চান এমন রেপো এবং শাখা ডিরেক্টরিতে থাকতে হবে; 2) urlগিট@github.com এর মতো একটি গিট ইউআরএল হওয়া উচিত: ব্রায়ানজেলিপ / গ্রোসারিজ.git; 3) branch-to-moveবর্তমান রেপোগুলির একটি শাখা যা আপনি একটি নতুন রেপো তৈরি করতে চান; 4) new-branch-name: আপনি যে নামটি নতুন রেপো নতুন শাখা চান তৈরি করা হচ্ছে, অর্থাত্ master
ব্রায়ান জেলিপ

19

এটি সমস্ত শাখার ইতিহাস বজায় রাখবে, তবে আপনার অনুলিপিটি বিশেষত একটি শাখায় তুলে ধরবে:

git clone -b newbranch CurrentRepo NewRepo

এটি কিছুই 'সরানো' করে না, কেবল একটি অনুলিপি তৈরি করে।


2
মূল্যবান যে clone -bনতুন। এটির জন্য গিট> = 1.6.5 (অক্টোবর ২০০৯ এ প্রকাশিত) প্রয়োজন।
সিবি বেইলি

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