গিট-এসএনএন: আমি কীভাবে গিটের মাধ্যমে একটি নতুন এসএনএন শাখা তৈরি করব?


193

আমার কাছে একটি গিট সংগ্রহস্থল রয়েছে যা একটি এসএনএন সংগ্রহশালা ট্র্যাক করে। আমি এটি ব্যবহার করে ক্লোন করেছি --stdlayout

এর মাধ্যমে আমি একটি নতুন স্থানীয় শাখা তৈরি করেছি git checkout -b foobar

এখন আমি এই শাখাটি …/branches/foobarএসএনএন সংগ্রহস্থলটিতে শেষ হওয়া চাই ।

আমি কিভাবে এটি সম্পর্কে যেতে পারি?

(অনেকগুলি তদন্তকারী পাঠ্য কেটে ফেলা হয়েছে you যদি যত্নশীল হন তবে প্রশ্নের ইতিহাস দেখুন)


উত্তর:


280

আমি জানি এই প্রশ্নের উত্তর কিছুদিন আগে দেওয়া হয়েছে, তবে এটি পড়ার পরে, আমি এটি নির্দিষ্ট গিট এসএনএন শাখা কমান্ডের উদাহরণ যুক্ত করতে এবং এটি একটি সাধারণ কর্মপ্রবাহের সাথে সম্পর্কিত করতে সহায়তা করতে পারি।

Kch উত্তর মত, ব্যবহার করুন git svn branch। এখানে একটি সম্পূর্ণ উদাহরণ, ( -nশুকনো রান পরীক্ষা করার জন্য নোট করুন ):

git svn branch -n  -m "Branch for authentication bug" auth_bug

যদি এটি ঠিকভাবে চলে যায় তবে সার্ভার উত্তরগুলির সাথে উত্তর দেয়:

অনুলিপি করা হচ্ছে https://scm-server.com/svn/portal/trunk করার r8914 এ https://scm-server.com/svn/portal/branches/auth_bug ...

এবং -nসুইচ ছাড়াই সার্ভার সম্ভবত এর মতো কিছু যুক্ত করে:

সম্ভাব্য শাখার পয়েন্টটি পাওয়া গেছে: https://scm-server.com/svn/portal/trunk => https://scm-server.com/portal/branches/auth_bug , 8914

পাওয়া শাখা পিতামাতা: (রেফার্স / রিমোটস / এথ_ব্যাগ)

d731b1fa028d30d685fe260f5bb912cbf59e1971

Do_switch সহ পিতামাতার অনুসরণ করছেন

সফলভাবে পিতামাতাকে অনুসরণ করেছে r8915 = 6ed10c57afcec62e9077fbeed74a326eaa4863b8

(Refs / রিমোটের / auth_bug)

এর সর্বোত্তম অংশ, এখন আপনি আপনার দূরবর্তী শাখার উপর ভিত্তি করে একটি স্থানীয় শাখা তৈরি করতে পারেন:

git checkout -b local/auth_bug auth_bug

যার অর্থ "চেক আউট এবং নামকরণ করা স্থানীয় শাখা তৈরি করুন auth_bugএবং এটি দূরবর্তী শাখা অনুসরণ করুন (শেষ প্যারামিটার)auth_bug

টেস্ট আপনার স্থানীয় শাখা ব্যবহার করে দূরবর্তী ডালে কাজ করে dcommitদিয়ে --dry-run( -n):

git svn dcommit -n

এবং এসভিএন সার্ভারের নতুন শাখার নাম দিয়ে উত্তর দেওয়া উচিত:

সংগঠনের https://scm-server.com/svn/portal/branches/auth_bug ...


2
হ্যাঁ, গিট কো মানে জেস্পার একটি গিট ওরফে সেট আপ করবে।
জেসন অ্যাকসেলসন

3
আপডেট এবং প্রতিস্থাপন git coকরা হয়েছে git checkoutযাতে উদাহরণটি কারও পক্ষে কাজ করতে পারে
জেস্পার রেন-জেনসেন

5
আমি ইতিমধ্যে এই উত্তরটি দিয়েছি, তবে আমি জানি না আমি কতবার ফিরে আসছি। ধন্যবাদ!
বেন ডোয়ার

35
git-svn branchকমান্ডে একটি জটিল অংশ রয়েছে - এভাবে একটি নতুন শাখা তৈরি করতে আপনাকে অনলাইনে থাকতে হবে। আপনি অফলাইনে নিম্নোক্ত কাজ করতে পারেন: 1. git checkout -b foobar2. হ্যাক-হ্যাক-হ্যাক 3. git commit -m "Done foobar"। আর যখন অনলাইন করছেন 1. এই পরিবর্তনটি ধাক্কা git svn branch foobar2. git branch --set-upstream foobar remotes/foobar3. git svn dcommit
বদিশেভ

2
সুতরাং সঙ্গে পদক্ষেপ 2 প্রতিস্থাপন git checkout -b foobar-new remotes/foobar। 3. git checkout foobar4. git rebase foobar-new5. শাখাটি এখন এসএনএন শাখায় প্রতিশ্রুতিবদ্ধ তা নিশ্চিত করার জন্য পরীক্ষা করা test git svn dcommit --dry-run6. অবশেষে কমিট করুন git svn dcommit7. টেম্প শাখা সরানgit branch -D foobar-new
jjcf89

64

গিট v1.6.1 হিসাবে, git svn branchউপলব্ধ।

গিট ডকস থেকে:

    শাখা
        এসভিএন সংগ্রহস্থলে একটি শাখা তৈরি করুন।

        -ম, - ম্যাসেজ
            প্রতিশ্রুতিবদ্ধ বার্তা নির্দিষ্ট করার অনুমতি দেয়।

        -t, --tag
            শাখা_সুবদীরের পরিবর্তে ট্যাগ_সুব্বির ব্যবহার করে একটি ট্যাগ তৈরি করুন
            গিট এসএনএন initের সময় নির্দিষ্ট করা হয়েছে।

গিটের পূর্ববর্তী সংস্করণগুলি এসএনএন শাখা তৈরির কোনও উপায় সরবরাহ করে না।


4

@kch I just (7 ডিসেম্বর ২০০৮) গিট এর v1.6.1-rc1 ট্যাগ সংকলন করেছে এবং এতে গিট এসএনএন শাখা কমান্ড এবং এর জন্য ডকুমেন্টেশন রয়েছে। সুতরাং গিটের v1.6.1 প্রকাশে (আশা করা যায়) এই আদেশটি থাকা উচিত।


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