একমাত্র বিকাশকারী (এখনের জন্য), আমি কীভাবে গিট ব্যবহার করব? [বন্ধ]


60

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

একমাত্র বিকাশকারী হিসাবে, গিট বা গিটহাবের বৈশিষ্ট্যগুলি আমি কীভাবে এখনই উপকৃত করতে পারি সেগুলির সুবিধা নিতে পারি? আমার ওয়ার্কফ্লো কেমন হওয়া উচিত?

এছাড়াও, ভবিষ্যতে আমার প্রকল্পগুলিতে অন্যদের যুক্ত করার প্রত্যাশায় আমার কোন বিশেষ অনুশীলন শুরু করা দরকার?


3
অন্যরা যেমন ব্যাখ্যা করেছে, গিট আপনাকে প্রচুর শক্তি দেয়। যদিও একমাত্র বিকাশকারী হিসাবে আপনি পরে যে প্রশংসা করতে পারবেন তা হ'ল আপনি যদি কী পরিবর্তন করেছেন (যদি আপনি বিভিন্ন ফাইলে একটি গ্রুপে পরিবর্তনগুলি এক সেট করে রেখেছেন) এর রেকর্ড দেয় তবে আপনি সেগুলি কেন এবং কেন করেছেন! আপনি কখন একটি দলের অংশ হয়ে উঠবেন তাও এটি দুর্দান্ত অনুশীলন।
শীর্ষস্থানীয় গীক

1
বন্ধ কারণ আকর্ষণীয়। :)

@ ইউজার93458 বরাবরের মতো! বন্ধ বিষয়গুলি সাধারণত আমি যা অনুসন্ধান করি তা হয়।
মিরোস্লাভ পপভ

কখনও কখনও বন্ধ করা উচিত ছিল যে দুর্দান্ত প্রশ্ন।
ভলিউম এক

উত্তর:


64

এছাড়াও, ভবিষ্যতে আমার প্রকল্পগুলিতে অন্যদের যুক্ত করার প্রত্যাশায় আমার কোন বিশেষ অনুশীলন শুরু করা দরকার?

অবশ্যই. একটি সহজ ভাল অনুশীলন রয়েছে যা আপনি এখনই একটি দল না থাকলেও ব্যবহার করতে পারেন: উন্নয়নের জন্য একটি পৃথক শাখা তৈরি করুন। ধারণাটি হ'ল মাস্টার শাখায় কেবল প্রকাশিত কোড সংস্করণ বা বড় পরিবর্তন থাকবে। আপনার প্রকল্পে যোগদানকারী নতুন বিকাশকারীরা এটি সহজেই গ্রহণ করতে পারেন।

এছাড়াও, আপনি একক কাজ করা হলেও ব্রাঞ্চিং দরকারী is উদাহরণস্বরূপ, একটি নতুন বৈশিষ্ট্য কোডিংয়ের প্রক্রিয়া চলাকালীন আপনি একটি বাগ খুঁজে পাবেন। আপনি যদি শাখা ব্যবহার না করেন তবে আপনাকে উভয়ই করতে হবে: নতুন বৈশিষ্ট্য যুক্ত করুন এবং একই শাখায় বাগটি ঠিক করুন। এটি ভাল নয়: পি অন্যদিকে, আপনি যদি নতুন বৈশিষ্ট্য তৈরি করার জন্য একটি নতুন শাখা তৈরি করে থাকেন তবে আপনি কেবল উন্নয়ন শাখাটি চেকআউট করতে পারেন, বাগটি ঠিক করতে এবং নতুন বৈশিষ্ট্য শাখাটি ফিরে ফিরে দেখতে পারেন।

এটি আপনি একমাত্র প্রোগ্রামার হয়ে কী করতে পারেন তার একটি সংক্ষিপ্ত উদাহরণ। আমি নিশ্চিত যে আরও ভাল অভ্যাস থাকতে হবে।

আমি আপনাকে এই নিবন্ধটি অত্যন্ত সুপারিশ করছি: একটি সফল গিট ব্রাঞ্চিং মডেল


+1 - এটি উপলব্ধি করে। আমি সেই নিবন্ধটিও খুব কাছ থেকে দেখছি, এটি দেখতে খুব দরকারী।
ভার্চুওসিমিডিয়া

আমি গিট বিশেষজ্ঞ নই, বেশিরভাগই মার্চুরিয়াল ব্যবহারকারী। এই দেব শাখার পরামর্শটি কি এখনও মার্চুরিয়ালের ক্ষেত্রে ধারণ করে? দেখে মনে হচ্ছে এটির মতামত রয়েছে তবে কিছু পার্থক্য কী এই ক্ষেত্রে এটি একটি ভাল ধারণা নয়?
ক্লাইম

2
হ্যাঁ, এটি সমস্ত উত্স নিয়ন্ত্রণের পক্ষে যথেষ্ট পরিমাণে ধারণ করে। আমি আসলে এটি এসভিএন দিয়ে পিছনের দিকে করি; "মূল" ট্রাঙ্কটি সর্বশেষ উন্নয়নের জন্য যা দৈনিক বা এমনকি আরও প্রায়শই ঘন ঘন হয়। যখন একটি মুক্তির জন্য বলা হয়, কোডটি হিমায়িত হয় এবং একটি শাখা কাটা হয়। এই শাখাটি কেবলমাত্র প্রধান রিলিজ সমস্যাগুলি ঠিক করার জন্য সামান্য আপডেটগুলি পায় এবং তারপরে বিতরণযোগ্য তৈরি করা হয়। এইভাবে, প্রতিটি প্রকাশিত সংস্করণের পিছনে আমার উত্স কোডের একটি শাখা রয়েছে। এটি কেবল ট্যাগিং বা লেবেলিং বি / সি চেয়ে ভাল যদি কমল লেবেলের পরে আসে তবে প্রকাশের আগে, আপনি জানেন না যে এগুলি আসলে বাদ দেওয়া হয়েছিল কিনা।
কিথস

নিবন্ধের জন্য +1; @ ক্লেইম - হ্যাঁ, এইচজি জন্যও দুর্দান্ত কাজ করে। সত্যই "সফল ডিসিভিএস ব্রাঞ্চিং মডেল" বলা উচিত
ওয়াট বার্নেট

লিঙ্কটির জন্য +1 ধন্যবাদ, এটি আমি গিট দিয়ে কাজ করার পদ্ধতিটি পরিবর্তিত করেছি, আপনার খুব মন ভেবে নয় কিন্তু তারা যেমন বলেছে, প্রতিটি সামান্যই সহায়তা করে!
নিউটোপিয়ান

14

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

প্রথমে উদ্দেশ্যটি ছিল গিটটি শিখতে তাই আমি কিছু পরিমাণে অন্বেষণ করেছি। তারপরে আপনি বর্ণিত ওয়ার্কফ্লোতে প্রায় ফিরে এসেছেন।

কিছুক্ষন পরে এই কাজ করা কঠিন হয়ে পড়েছিল কারণ কিছু পরিস্থিতি তৈরি হওয়ার সাথে সাথে এটি আমার খারাপ অভ্যাসও দেয় যা আমি দলে যোগদানের পরে ভাঙ্গা কঠিন।

সুতরাং আমি নিম্নলিখিত জন্য স্থিতি:

  • কাজের জন্য স্থানীয় সংগ্রহস্থল
  • আবেদনের স্থিতিশীল ট্রাঙ্ক হিসাবে মাস্টার শাখা
  • প্রতিটি বৈশিষ্ট্য / রিফ্যাক্টরের জন্য একটি শাখা, মূলত প্রতিটি বৃহত্তর পরিবর্তনের জন্য একটি শাখা করা হবে।
  • যখন শাখা স্থিতিশীল থাকে এবং সমস্ত পরীক্ষা পাস হয় তখন ট্রাঙ্কে ফিরে মার্জ করুন।

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

  • আমি প্রতিটি সংস্করণ ট্যাগ করি যা এটিকে পুনরায় প্রকাশযোগ্য সংস্করণ হিসাবে গিথুবে পরিণত করে।
  • যদি গ্রাহককে ছেড়ে দেওয়া হয় তবে আমি গ্রাহক দ্বারা ঘোষিত বাগ ফিক্সগুলির জন্য দ্বিতীয় স্থিতিশীল ট্রাঙ্ক তৈরি করতে এই সংস্করণটি থেকে শাখা করব।

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

যখন সমস্ত ব্রাঞ্চিং জটিল হয়ে উঠল তখন আমি পরিবর্তনের গাছ আঁকতে এবং কোন শাখাটি রয়েছে তা দেখতে লগ বিকল্পটি সন্ধান করেছি l

দীর্ঘ গল্প সংক্ষিপ্ত, গিট এসভিএন, সিভিএস বা (আরআরআর) টিএফএসের মতো নয়। ব্রাঞ্চিং খুব সস্তা এবং ভুলগুলি করা যা কাজগুলি নিশ্চিহ্ন করে দেবে বাস্তবে বেশ কঠিন। কেবল একবার আমি কিছু কাজ হারিয়েছি এবং এটি আমার প্রতিশ্রুতিগুলি খুব বড় করে দেওয়ার কারণে হয়েছিল (উপরে খারাপ অভ্যাসগুলি দেখুন)। যদি আপনি প্রায়শই প্রতিশ্রুতিবদ্ধ হন তবে ছোট অংশগুলি গিট অবশ্যই আপনার সেরা মিত্র হবে।

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

একটি শেষ পরামর্শ, কমান্ড লাইন আপনার বন্ধু। গ্রাফিকাল সরঞ্জামগুলি ভাল নয় এটি বলার অপেক্ষা রাখে না তবে কমান্ড লাইনে নেমে আমি নিজেই চেষ্টা করে দেখলে আমি সত্যিই গিট তৈরি করেছি out এটি আসলে খুব ভাল তৈরি, একটি খুব ব্যাপক সহায়তা সিস্টেমের সাথে অনুসরণ করা সহজ। আমার বিকল্পটি না পাওয়া পর্যন্ত আমার সবচেয়ে বড় সমস্যাটি উইন্ডোতে তবে কুৎসিত কনসোলের সাথে আবদ্ধ ছিল।

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

শুভকামনা, আশা করি এটি সাহায্য করেছে।


4

আমি বেশ কয়েকটি পরিশীলিত ব্রাঞ্চিং মডেলগুলিতে পারদর্শী এবং কাজের ক্ষেত্রে কিছু ব্যবহার করি। যাইহোক, আমি যখন প্রকল্পগুলিতে একা কাজ করি তখন আপনি এখন যা করছেন ঠিক তেমনই আমি করি। আমার যদি প্রয়োজন হয় তবে আমি সর্বদা একটি শাখা তৈরি করতে পারি, তবে আমি প্রায় কখনই করি না। একা কাজ করছি, আমার কাছে খুব কমই বাগ ফিক্স রয়েছে যা আমার বর্তমান কাজ শেষ হওয়া পর্যন্ত অপেক্ষা করতে পারে না। আমার পরামর্শ হ'ল কিছু শাখা-প্রশাখা মডেলগুলির সাথে পরিচিত হওয়া, তবে আপনার প্রয়োজন না হওয়া পর্যন্ত বিষয়গুলিকে জটিল করার কোনও ধারণা নেই।


4

একটি সহজ মডেলের জন্য, আপনি গিটহাব কী করে তা দেখতে পারেন। "গিটহাব প্রবাহ" খুব সহজ, এবং এখানে একটি দুর্দান্ত গাইড রয়েছে: https://guides.github.com/intr پيداوار/flow/index.html

সংক্ষিপ্তসার ( স্কট চকনের ব্লগ থেকে ):

তো, গিটহাব ফ্লো কি?

  • মাস্টার শাখায় যে কোনও কিছুই শৃঙ্খলাবদ্ধ
  • নতুন কিছু নিয়ে কাজ করার জন্য, মাস্টার ছাড়াই বর্ণনামূলকভাবে নামকরণ করা শাখা তৈরি করুন (যেমন: নতুন- oauth2-scopes)
  • স্থানীয়ভাবে সেই শাখায় প্রতিশ্রুতিবদ্ধ এবং নিয়মিত আপনার কাজটি সার্ভারের একই নামী শাখায় চাপ দিন
  • যখন আপনার প্রতিক্রিয়া বা সহায়তা দরকার হয় বা আপনি মনে করেন যে শাখাটি মার্জ করার জন্য প্রস্তুত, একটি টানার অনুরোধটি খুলুন
  • অন্য কেউ বৈশিষ্ট্যটি পর্যালোচনা ও সাইন আপ করার পরে, আপনি এটিকে মাস্টার হিসাবে মার্জ করতে পারেন
  • এটি একবারে একীভূত হয়ে 'মাস্টার' এ ঠেলে দেওয়ার পরে আপনি তাৎক্ষণিকভাবে মোতায়েন করতে এবং করতে পারেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.