উত্স নিয়ন্ত্রণে প্রথম প্রতিশ্রুতিবদ্ধ করা উচিত কখন?


118

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

ধরা যাক, উদাহরণস্বরূপ, আমার একটি প্রকল্প রয়েছে যা একটি একক কোড ফাইল নিয়ে গঠিত। প্রকল্পটি চূড়ান্ত প্রাথমিক কার্যকারিতা (1 বা 2 বৈশিষ্ট্য) সহ কাজ করতে প্রায় 10 লাইন বয়লারপ্লেট কোড এবং 100 টি লাইন লাগবে। আমার কি প্রথম চেক ইন করা উচিত:

  1. খালি ফাইল?
  2. বয়লারপ্লেট কোড?
  3. প্রথম বৈশিষ্ট্যগুলি?
  4. অন্য কোন সময়ে?

এছাড়াও, নির্দিষ্ট পয়েন্টে চেক ইন করার কারণগুলি কী কী?


10
বাড়িতে যাওয়ার আগে আপনি নিজের ওয়ার্কিং শাখায় প্রতিশ্রুতিবদ্ধ হন।
রিট্যাগুলার

59
প্রথম প্রতিশ্রুতি সর্বদা সোর্সফোর্জ প্রকল্প তৈরি করার পরে, একটি ওয়েবসাইট সেটআপ করার, মেলিং তালিকাটি কনফিগার করার পরে এবং বেশ কয়েক বছর ধরে প্রকল্পটি সম্পর্কে ব্লগিংয়ের পরে করা উচিত। :)
কাজ

15
খুব তাড়াতাড়ি বা প্রায়শই প্রতিশ্রুতিবদ্ধ করার খারাপ দিকটি কী?
আইজাক রবিনোভিচ

13
এমকেডির মাইপ্রোজ; সিডি মাইপ্রোজ; git init; কাজ শুরু.
এডি বি

10
আমি ভিডিও গেমগুলির দ্রুত-সেভ বোতাম থেকে অগ্রগতি সঞ্চয় কীভাবে পরিচালনা করবেন তা শিখেছি। নিয়মটি এর মতো হয়: Will I mind having to redo that part ? Save : SaveAnyway;আমি উত্স নিয়ন্ত্রণে একই পদ্ধতি গ্রহণ করি, আমি কিছু কাজ করার জন্য বা সম্পূর্ণ কাছাকাছি কোথাও হওয়ার জন্য অপেক্ষা করি না, যতক্ষণ না আমি কিছু খুঁজে বের করি বা পর্যাপ্ত পরিবর্তন না করি যা আমি চাই না এটি আবার খুঁজে বের করার চেষ্টা করতে হবে বা আবার এই পরিবর্তনগুলি করতে হবে, তবে আমি চেক ইন করব That's এজন্য লোকেরা প্রকল্প তৈরির পরে সংরক্ষণের পরামর্শ দেয়; প্রকল্পগুলি তৈরি করা বিরক্তিকর, চেক ইন করুন যাতে একেবারে আপনাকে আর এটি করতে হবে না।
জিমি হোফা

উত্তর:


103

আপনার একটি বুদ্ধিমান "ইউনিট" সম্পূর্ণ হওয়ার সাথে সাথে আপনাকে প্রতিশ্রুতিবদ্ধ করা উচিত।

ইউনিট কী? এটি আপনি কী করছেন তার উপর নির্ভর করে; আপনি যদি কোনও ভিজ্যুয়াল স্টুডিও প্রকল্প তৈরি করেন, উদাহরণস্বরূপ, সমাধানটি তৈরির পরে ঠিকঠাকটি প্রতিশ্রুতিবদ্ধ করুন, এতে কিছু না থাকলেও।

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


27
আমি ক্রমাগত একটি কাজের শাখায় নিকটতম প্রতিশ্রুতিবদ্ধ এবং আমি ইউনিটগুলিতে সেই শাখাটিকে মূল লাইনে মিশ্রিত করি। এটি উভয় বিশ্বের সেরা দেয় যে মূললাইনটি ইউনিট দিয়ে তৈরি হয়েছিল ছোট ছোট পরিবর্তনগুলি ফিরে ফেরাতে, তবে বিষয় শাখাটি আমাকে একবারে সামান্য ব্যাক আপ করতে দেয়।
জেফ ফেরল্যান্ড

16
কমিট কখনও ছোট হয় না! আপনার পরিবর্তনগুলি করা থেকে নিজেকে বিরত রাখবেন না!
লিওনার্দো হেরেরা

1
আপনার কাজের প্রবাহ এবং কত লোক আপনার রেপোতে কাজ শুরু করতে আগ্রহী তার উপর নির্ভর করে আমি অনেক ছোট, ঘন ঘন কমিটিকে +1 বলি। ইতিহাসকে কিছুটা নতুন করে লেখার গিটের দক্ষতা যাতে এই 15 টি প্রতিশ্রুতি দেয় FooSerializerআপনি এটির আগে সহায়তা করার আগে তা এক জিনিস হয়ে উঠতে পারে।
টিম পোস্ট

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

1
হতে পারে এটি ২ য়, তৃতীয় প্রতিশ্রুতি ইত্যাদির একটি উত্তরের উত্তর তবে প্রথমটি খালি থাকা উচিত।
ফিলিপ

143

যতদূর আমি উদ্বিগ্ন, আপনার উত্স নিয়ন্ত্রণ রেপো বেসিক প্রকল্পের সেটআপের অংশ, তাই আমি আমার খালি প্রকল্পটি উত্পন্ন করার পরে আমি প্রতিশ্রুতিবদ্ধ।


29
তাড়াতাড়ি কমিট, প্রায়শই কমিট।
লিওনার্দো হেরেরা

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

2
ধন্যবাদ @ অ্যান্টনিস্কট আমি গৃহীত উত্তরের সাথে 100% সম্মত, কিন্তু আমি যখন এটি লিখেছিলাম, আমি কীভাবে উত্স নিয়ন্ত্রণ পরিচালনা করব এবং কেন করব তা নিয়ে 1500 শব্দের রচনা দিয়ে জলকে কাঁদিয়ে দেওয়ার এই দৃষ্টি ছিল। সুতরাং আমি এটিকে সহজ এবং বিন্দুতে রাখার সিদ্ধান্ত নিয়েছি।
জন ম্যাকআইন্টির

2
হ্যাঁ, +1 যদি আপনার শূন্য প্রতিশ্রুতি সম্পর্কে খারাপ লাগছে, তবে জিওন আরও একটি উত্তরে [ প্রোগ্রামার্স.স্ট্যাকেক্সেঞ্জঞ্জ . com/a/176845/5405 ] লিখেছেন হিসাবে .gitignore (বা সমমানের) দিয়ে শুরু করুন । এটি একটি খুব স্বাভাবিক প্রথম অঙ্গীকার।
হ্যানো ফিয়েটজ

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

77

গতকাল

... বিকল্প হিসাবে, আপনি যদি সময়-ভ্রমণে অক্ষম হন ...
(সম্ভবত আপনার গাড়িটি 88mph এ যেতে পারে না, বা আপনার ফ্লাক্স ক্যাপাসিটারটি কেবল ছড়িয়ে পড়ে)

এখন

নতুন প্রকল্পগুলি রক্তাক্ত স্থানে প্রতিশ্রুতিবদ্ধ হওয়া উচিত, এটি পাগল নয় এবং সমসাময়িক ডিভিসিএস সিস্টেমগুলি প্রতিশ্রুতিগুলি এড়াতে কেবল সম্ভাব্য অজুহাত সরিয়ে নিয়েছে : git init . ; git add * ; git commit -m initial-commitএখন আগেই অনেক দেরি হয়ে যাওয়ার আগে যেমন এটি হতে পারে।

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

আপনার ব্যক্তিগত শাখায় পাগল পছন্দ করা উচিত , কমপক্ষে প্রতিদিন একবার ঘুমানোর আগে like আপনি সম্ভবত সকালে ঘুম থেকে উঠতে পারেন এবং দেখতে পাচ্ছেন যে আপনি আগের রাতের দিকে কী ছিলেন? ভিসিএস এর বিপরীতে আপনাকে কভার করা উচিত এবং খুব সাম্প্রতিক সাব-ভার্সন-এ-সাব-সংস্করণে রোলব্যাক করার সুযোগ রয়েছে যা সুন্দরভাবে সংকলন করে, সহজেই চলে এবং / বা পরীক্ষাগুলি পাস করা আপনার সেরা বিকল্প হতে পারে।


3
বিশেষ করে দিনের শেষে সংকলন না করে এমন পরিবর্তনগুলি ঘটাতে আমার আপত্তি নেই। পরের দিন আপনার কাছে এমন কিছু আছে যা সংকলন করে না তবে এখনও আপনার প্রতিশ্রুতিবদ্ধ ইতিহাস রয়েছে - আপনি যদি নিজের ইতিহাস "নোংরা" না চান তবে প্রতিটি ভাল ডিভিসিএসে রোলব্যাকের বিকল্প রয়েছে (আমি মনে করি আমরা সবাই ডিভিসিএসের একমাত্র উপায় হ'ল যান।)
লিওনার্দো হেরেরা

@ লিওনার্দো হেরেরা আমি আপনার পিওভিটি বুঝতে পারি, যদিও একাধিক প্রবেশদ্বার বিশিষ্ট ভাষা প্রকল্পগুলিতে আপনি বৈধ কারণে কিছু অ-সংকলনকারী শাখার প্রতিশ্রুতি দিয়েছিলেন (যেমন কোনও পৃথক প্রবেশদ্বারে বাগ ফিক্সগুলি ভাগ করে নেওয়া) এটি অবশ্যই আরও ভাল ও উপায়ের উপায়ে করা যেতে পারে , তবে তারপরে এটি সাজানোর বিষয় হয়ে দাঁড়ায় ... এবং এটি কোনও বিতর্কিত বিষয় নয়
জেডজেআর

20

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

ব্যক্তিগতভাবে, আমার প্রথম প্রতিশ্রুতিতে পাইথন কোডের জন্য * .py [co] এর মতো, আমার জানা কম কয়েকটি ফিল্টার সহ কেবলমাত্র .gitignore ফাইল (বা সমমানের) থাকে । বেসিক প্রজেক্ট সেটআপ এবং / অথবা প্রথম সর্বাধিক সহজ প্রোটোটাইপ যা সাধারণত অনুসরণ করা হয়।


আমিও তেমন কিছু করি। যেহেতু আমি গিটহাব ব্যবহার করি, তাই আমার কাছে সর্বদা একটি বেসিক README ফাইল থাকে, এমনকি এটিতে কেবল প্রকল্পের নাম থাকে। আমি সেখানে ফাইলটি পেয়ে যাওয়া থেকে পাওয়া অনেক বেশি সম্ভাবনা তৈরি করে যা ভবিষ্যতে এটি আপডেট করে ফেলেছি :)।
টিখন জেলভিস

16

প্রথম প্রতিশ্রুতিটি প্রকল্পের এক লাইনের সংক্ষিপ্তসার হিসাবে খুব কম, বা প্রকল্পের প্রথম মাইলফলক সম্পর্কে পর্যাপ্ত তথ্য সহ একটি README ফাইল হতে পারে। বিস্তৃত বিষয়গুলিও অন্তর্ভুক্ত করতে পারে:

  • ভূমিকা
  • প্রকল্প বর্ণনা
  • প্রকল্প কাঠামো
  • কোডিং কনভেনশনস
  • কীভাবে নির্দেশাবলী:
    • নির্মাণ করা
    • পরীক্ষা
    • স্থাপন
  • জ্ঞাত সমস্যা এবং কর্মক্ষেত্রগুলি
  • তালিকা তৈরি
  • ব্যবহারের শর্তাবলী

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

যে কেউ এই সফ্টওয়্যারটিতে অবদান রাখতে বা ব্যবহার করতে চায় সে তারপরে README দিয়ে শুরু করবে।


12

আপনি যদি এমন কাজ করেন যা আপনি হারাতে চান না, এটি আপনার উত্স নিয়ন্ত্রণ সিস্টেমে থাকা উচিত।

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


3
আমার নিয়মটি এটি হ'ল সংযোজন সহ আমি এটিও চাই যে "কোডটি সংকলন করে এমন সময়ে পয়েন্ট" হোক। যেটি সংকলন করে না এবং দ্বিখণ্ডিত করে না তা কমিটিকে আরও বিরক্তিকর করে তোলে, যদি আপনি কখন কোনও কিছু ভেঙে ফেলেন তা খুঁজে বের করতে হয়।
ওয়ারেন পি

অন্তত গিটের জন্য কোনও অস্থায়ী শাখার ঠিকানা দেবে না? আমি git bisectবেশি ব্যবহার করিনি ।
কিথ থম্পসন

আমি রিবেস ছাড়াই মার্উরিয়াল ব্যবহার করি তাই আমি সমস্ত প্রতিশ্রুতি স্থায়ী হিসাবে বিবেচনা করি
ওয়ারেন পি

7

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

এমনকি যদি আপনি এই প্রকল্পে একমাত্র কাজ করছেন এবং এটিতে কেবল একটি ফাইল পাওয়া যায় তবে একই কার্যপ্রবাহটি অনুসরণ করা এবং সমস্যাটির জন্য চিন্তাভাবনা সংরক্ষণ করা আমার পক্ষে আরও সহজ।


6

না নিশ্চিত যদি এটা উল্লেখ করা হয়েছে।

তবে আপনি যা চালাচ্ছেন / সংকলন করেছেন তা নিশ্চিত করুন ! সুতরাং কোন সিনট্যাক্স ত্রুটি, ইত্যাদি।

ভেঙে যাওয়া কোডটি চেকআউট করা ছাড়া আর হতাশার আর কিছু নেই।


প্রকৃতপক্ষে, জ্ঞান!
অ্যাকোরিয়াস_গর্ল

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

5

সফ্টওয়্যার পরীক্ষার সাথে সম্পর্কিত অন্যান্য দৃষ্টিভঙ্গি (টিডিডি পদ্ধতির) আপনার সবুজতে নতুন পরীক্ষার কেস হওয়ার সাথে সাথে প্রতিশ্রুতিবদ্ধ হবে। এর অর্থ হল আপনার কোডের একটি নতুন "ইউনিট" সম্পন্ন হয়েছে।


কোনও পদ্ধতি কভার করার জন্য আপনার (বেশিরভাগ ক্ষেত্রে) এর জন্য বেশ কয়েকটি ইউনিট পরীক্ষার প্রয়োজন হতে পারে। আপনি যদি কোনও পরীক্ষার পাস করেন তবে এটি বলা সত্য নয়, তার অর্থ আপনি কোনও ইউনিটের কাজ শেষ করেছেন। এমনকি এই পদ্ধতিটি শেষ করা কোনও কাজেরই একক এটি বলাও সত্য নয়।
বেহনম রসুলি

5

আপনি নিরীহ কিছু করার আগে।

আমাদের মধ্যে যাদুকরী শক্তি ছাড়াই, এর অর্থ সামান্য এবং প্রায়শই।

আপনি যদি নিজেরাই কাজ করে থাকেন তবে প্রতিবার আপনি পানীয় পান করুন বা যা কিছু করুন তা করুন।

আপনি যদি একটি দলে কাজ করছেন, আপনার সম্ভবত বিষয়টি নিশ্চিত করা দরকার যে জিনিসটি সংকলন করেছে, যাতে অন্য কেউ সর্বশেষ হয়ে গেলে, তারা ত্রুটিগুলির একটি ব্যাগ পাবে না। তবে এগুলি ছাড়াও যতটা সম্ভব আপনি পারেন।


4

প্রকল্পে প্রায় 2 ~ 3 ঘন্টা।

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

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

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

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


3

অনেক লোক ইতিমধ্যে "সরাসরি" উত্তর দিয়েছে, এবং আমি 100% সম্মত। আমি ভিসিএসের উপেক্ষা করার ধরণগুলি (যেমন বা সমমান) দিয়ে শুরু করার জন্যও জাওনের পরামর্শটি পছন্দ করি .gitignore

আমার ধারণা এটি প্রাথমিকভাবে কমিট করার কোনও ডাউনসাইড নেই বলে সম্মত হয়েছি upon আমি আপসাইড যুক্ত করতে চাই:

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

2

এটি নির্ভর করে আপনি কোন ভিসিএস ব্যবহার করছেন।

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

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


2

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

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

আমি বর্তমানে কাজের জায়গায় কচ্ছপ / এসভিএন ব্যবহার করছি।


2

এখনই খালি প্রকল্পটি কমিট করুন। আপনি প্রকল্পে কাজ করতে প্রতি ঘন্টা কয়েকবার প্রতিশ্রুতিবদ্ধ রাখুন। কোডটি সংকলন না করলেও প্রতিশ্রুতিবদ্ধ। আমি এই ধরনের প্রতিশ্রুতিগুলি "ডাব্লুআইপি" এর সাথে চিহ্নিত করে রাখি যাতে সেগুলি রক্ষা করা যায়।

আমার কাছে একটি স্ক্রিপ্টও আছে যা প্রতি 10 মিনিটের পরে আমার সমস্ত প্রকল্পগুলি ব্যাকআপ রেপোতে স্বয়ংক্রিয়ভাবে প্রতিশ্রুতিবদ্ধ হয়, যদি আমি নিজেই প্রতিশ্রুতি দিতে ভুলে যাই। আসুন একে আমার মেঘ-সমর্থিত পূর্বাবস্থার বাফার বলুন।

আপনার কোডটি দেখার জন্য যখন আপনার দলের প্রয়োজন হবে তখন একটি টিম রেপোতে প্রকল্পটি চেক ইন করুন (ਉਦਾ। পুশ করুন )। আপনার কোডটি আপনার দলটি দেখতে প্রস্তুত হওয়ার আগে যা সম্ভবত আপনি যদি আমার মতো কিছু হন তবে।

আপনি যদি আপনার দলের সাথে সুন্দর হতে চান তবে আপনার প্রতিশ্রুতিগুলি টিম রেপোতে ঠেকানোর আগে স্কোয়াশ করুন।


1

আমি সমস্ত নিবন্ধগুলি পেরিয়েছি এবং আমার মনে হয় আমরা ইতিমধ্যে প্রচুর ভাল সমাধান পেয়েছি তবে আমি আমার পদ্ধতিটি আপনার সাথে ভাগ করে নিতে চাই।

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

ধন্যবাদ


0

যে কোনও অ্যাপ্লিকেশন সহ, আপনি উপাদানগুলি ডিজাইনের জন্য কিছু সময় ব্যয় করতে যাচ্ছেন। আপনার মোটামুটি বা সম্পূর্ণ বিশদে আপনার নামের স্থান, প্রকল্পগুলি, বাহ্যিক রেফারেন্সগুলি, তৃতীয় পক্ষের গ্রন্থাগারগুলি ইত্যাদি জানা উচিত should

আপনি যদি একটি দলে থাকেন তবে আমি আপনার নেতৃত্বটি বা যাকে বেছে নেওয়া হয়েছে, বেস প্রকল্পটি তৈরি করতে, নির্ভরতা নির্ধারণ করতে, এবং সেই কঙ্কালটি (আপনার প্রকল্পটি যে ভিত্তিতে নির্মিত হবে) পরীক্ষা করতে চাই suggest

আপনি নিশ্চিত করতে চান যে আপনার প্রক্রিয়াটি শক্তিশালী হওয়ার জন্য আপনার কাজ, রিলিজ, ট্রাঙ্ক ইত্যাদি শাখাগুলি পরীক্ষা করার আগে নির্দিষ্ট করা হয়েছিল spec

যদি আপনি এমন একটি প্রকল্পের জন্য একটি নতুন "টাস্ক" নিয়ে কাজ করছেন যা ইতিমধ্যে চলছে এবং আপনি নিজের টাস্ক শাখায় রয়েছেন, তবে আপনার রাতের চেক-ইন করুন যাতে আপনি নিজের কাজটি সংরক্ষণ করেন।


0

সাধারণত আমি যখনই নতুন কিছু যুক্ত করি তখনই আমি চেক ইন করি, তবে পৃথক পৃথকীকরণে জিনিস আলাদা করার চেষ্টা করি।

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

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

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

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

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

ধরা যাক, উদাহরণস্বরূপ, আমার একটি প্রকল্প রয়েছে যা একটি একক কোড ফাইল নিয়ে গঠিত। প্রকল্পটি চূড়ান্ত প্রাথমিক কার্যকারিতা (1 বা 2 বৈশিষ্ট্য) সহ কাজ করতে প্রায় 10 লাইন বয়লারপ্লেট কোড এবং 100 টি লাইন লাগবে।

এটি স্টাফ যুক্ত করা কতটা কঠিন তার উপর নির্ভর করবে:

  • যদি এটি বয়লার প্লেট কোড যুক্ত করা তুচ্ছ ছিল, আমি এটিকে যুক্ত করব এবং অন্য কোডটি শুরু করার আগেই প্রতিশ্রুতিবদ্ধ (এইভাবে, যদি আমি ভুল করি বা পরে কোনও অদ্ভুত বাগ প্রবর্তন করি তবে আমি কেবল বয়লারপ্লেট কোডটিতে ফিরে যেতে এবং শুরু করতে পারি) আবার)।

  • কোডটি যদি তুচ্ছ না হয় তবে প্রতিবারই আমি নতুন কিছু যুক্ত করার প্রতিশ্রুতিবদ্ধ (কোডের প্রতিটি দুই লাইনের মধ্যে যে কোনও জায়গায় পরিবর্তন করে একশত বা আরও বেশি করে দেওয়া হয়েছে)।

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