একই সাথে দুটি শাখায় কাজ করা


167

আমার অনেক শাখা নিয়ে একটি প্রকল্প আছে।

আমি পিছনে পিছনে স্যুইচ না করে একসাথে বেশ কয়েকটি শাখায় কাজ করতে চাই git checkout

পুরো সংগ্রহস্থলটি অন্য কোথাও অনুলিপি করার পাশাপাশি আমি কীভাবে এটি করতে পারি?



1
গিট 2.5+ (কিউ 2 2015) আনুষ্ঠানিকভাবে নতুন কমান্ডের সাথে এটি সমর্থন করবে git checkout --to=<path>। দেখুন নিচের আমার উত্তর
ভনসি

2
আসলে, কমান্ডটি হবে git worktree add <path> [<branch>](গিট 2.5 আরসি 2)
ভোনসি

উত্তর:


156

গিট 2.5+ (কিউ 2 2015) এই বৈশিষ্ট্যটিকে সমর্থন করে!

আপনার যদি গিট রেপো থাকে cool-app, সিডি থেকে রুট ( cd cool-app) চালাতে পারেন git worktree add ../cool-app-feature-A feature/A। এটি feature/Aনিজস্ব নতুন ডেডিকেটেড ডিরেক্টরিতে শাখাটি পরীক্ষা করে cool-app-feature-A

এটি একটি পুরানো স্ক্রিপ্ট প্রতিস্থাপন করে contrib/workdir/git-new-workdir, আরও শক্তিশালী প্রক্রিয়া সহ যেখানে সেই "লিঙ্কযুক্ত" কার্যকারী গাছগুলি মূল প্রধান রেপো $GIT_DIR/worktreesফোল্ডারে রেকর্ড করা হয় (যাতে উইন্ডোজ সহ যে কোনও ওএসে কাজ করা যায়)।

আবার একবার আপনি রেপো ক্লোন করে /path/to/myrepoনিলে (যেমন ফোল্ডারে ) আলাদা আলাদা পাথগুলিতে ( /path/to/br1, /path/to/br2) বিভিন্ন শাখার জন্য কর্মরত গাছগুলি যুক্ত করতে পারেন, যখন সেই কার্যকারী গাছগুলি মূল রেপো ইতিহাসের সাথে যুক্ত থাকে (তখন --git-dirআর কোনও বিকল্প ব্যবহার করার দরকার নেই)

" গিটের সাথে একাধিক ওয়ার্কিং ডিরেক্টরি? " এ আরও দেখুন।

এবং একবার আপনি একটি ওয়ার্ক্রিট তৈরি করার পরে, আপনি এটিকে স্থানান্তর বা সরাতে পারেন (গিট 2.17+, কিউ 2 2018 সহ)।


2
এটি নতুন গ্রহণযোগ্য উত্তর হওয়া উচিত, যেহেতু 2.5.X এখন প্রস্তাবিত সংস্করণ, এমনকি উইন্ডোগুলির জন্যও i.imgur.com/oQvUhVl.png git-scm.com/download/win
RAnders00

40

কটাক্ষপাত $ GIT_SRC_DIR / contrib / workdir / Git-নতুন-workdir

একটি কার্যনির্বাহী ডিরেক্টরি তৈরি করতে একটি সাধারণ স্ক্রিপ্ট যা একটি বিদ্যমান অস্তিত্বের সংগ্রহস্থলের দিকে নির্দেশ করতে সিমলিংক ব্যবহার করে। এটি বিভিন্ন কার্যক্ষম ডিরেক্টরিতে বিভিন্ন শাখা রাখার অনুমতি দেয় তবে সমস্ত একই সংগ্রহস্থল থেকে।



2
আমি জানি এটি পুরানো, তবে দয়া করে আপনি কিছু ব্যাখ্যা সরবরাহ করতে পারেন।
ডেভ_আই

@dav_i: ভালো লেগেছে এই ?
স্টিফান নিউও

@ স্টিফাননিউ আহ আমি বিভ্রান্ত হয়ে পড়েছিলাম - খুব ভোরে ... আপনার লিঙ্কটি দিয়ে উত্তর উত্তর আপডেট করেছে updated
ডেভ_আই

0

আমি আমার ছোট স্ক্রিপ্টটির পরামর্শ দিচ্ছি http://www.redhotchilipython.com/en_posts/2013-02-01-clone-per-feature.html

এটি গিট ক্লোনটি করবে এবং কনফিগারটি (মূল রেপোতে "দেখতে", তাই মূলত টান / ধাক্কা "মূল" রেপোতে যাবে), তবে প্রকৃত বুটস্ট্র্যাপিং থেকে বিমূর্ততা পরিবেশন করার পক্ষে এটি যথেষ্ট সহজ।


0

আমাদের বন্ধু যেমন ভনসি পাঁচ মাস আগে বলেছিলেন, এখন 2.5.x সংস্করণ থেকে একটি নতুন বৈশিষ্ট্য কাজ করেছে যা কাজ করে। Git worktree


উপরের আমার উত্তরে আমি 5 মাস আগে উল্লিখিত মতামতটি কি একই নয় ?
ভোনসি

অপস। এখন আমি ভয়ঙ্কর বোধ করছি। আমি এটির জন্য যথাযথ মনোযোগ দিয়েছি না। আমার খারাপ।

0

গিট একই সাথে একাধিক ওয়ার্কট্রি সমর্থন করে। আরও তথ্যের জন্য দেখুন:

আইডি সহ একাধিক ওয়ার্কট্রি সমর্থন করা কখনই খুব কঠিন। উদাহরণস্বরূপ, এটি ওয়ার্কট্রি সমর্থন করার জন্য জেগেটে (এক্সেলিপস আইডি) একটি বর্ধিতকরণের অনুরোধ

সুতরাং, আপনাকে প্রচুর সমস্যা সহ ম্যানুয়ালি (কমান্ড লাইন) প্রকল্প পরিচালনা করতে হবে বা আইডিইতে একটি একক ওয়ার্কট্রি দিয়ে কাজ করতে হবে।


এখন পর্যন্ত, এই উত্তরটি সঠিক নয়। উত্তর আপডেট করুন।
নরেন্দ্র-চৌধুরী চৌধুরী

-2

সত্যই নয় যে গিট কেবলমাত্র সংগ্রহস্থল ডিরেক্টরিতে রেপোজিটারি ডেটার একটি কার্যকরী অনুলিপি সমর্থন করে ।

আপনি যদি দুটি ভিন্ন কার্য কপির সাথে একই ভান্ডারটিতে প্রতিশ্রুতিবদ্ধ / টানতে চান তবে আপনি একটি খালি সংগ্রহস্থান তৈরি করতে এবং এটি দুটি কার্যকরী অনুলিপিতে ক্লোন করতে পারেন ।

আপনি যখনই কোনও কাজ শেষ করেছেন, আপনি কেবল "মূল" খালি ভাণ্ডারটিতে চাপ দিন।

কিছু ইঙ্গিত:

man git-clone

git clone --bare


3
"গিট কেবলমাত্র সংগ্রহস্থল ডেটার একটি কার্যকরী অনুলিপি সমর্থন করে" -1 সত্য নয়, সম্পর্কে উত্তরটি দেখুন git-new-workdir
স্লেসকে

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