ম্যানুয়াল আর্কাইভ একটি সেট থেকে একটি গিট সংগ্রহস্থল নির্মাণ


1

আমি একটি উপযুক্ত কন্টেন্ট ম্যানেজমেন্ট সিস্টেম ছাড়া তৈরি করা হয়েছে যে একটি অ্যাপ্লিকেশন সঙ্গে ডিল করছি। পরিবর্তে, উৎস ফাইলগুলি একটি জিপ সংরক্ষণাগারে সংরক্ষণ করা হয়েছে এবং প্রতিবার একটি নতুন সংস্করণ প্রকাশ করা হয়েছে।

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

অতি সাম্প্রতিক আর্কাইভ থেকে কেবলমাত্র একটি সংগ্রহস্থান তৈরি করা এবং সেখানে থেকে কাজ করা সহজ, তবে আমি কীভাবে পরিবর্তনগুলির ইতিহাস অন্তর্ভুক্ত করব?

উত্তর:


3

এটি সাম্প্রতিকতম থেকে একটি সংগ্রহস্থল তৈরি করা সহজ হবে   সংরক্ষণাগার এবং সেখানে থেকে কাজ, কিন্তু কিভাবে আমি ইতিহাস অন্তর্ভুক্ত করা হবে   পরিবর্তনগুলি?

বেশ সহজ. কোডবেসটি এক জিপ সংরক্ষণাগার থেকে অন্যটিতে কতটা পরিষ্কার তা নির্ভর করে এটির সাথে যোগাযোগ করার দুটি উপায় রয়েছে: যৌথ ইউএনজিআইপি Commits অথবা প্রতিটি Commit পরে পরিষ্কার করুন

সংযোজিত ইউএনজিআইপি কমিটি: ইউএনজিআইপি, কমিট, ইউএনজিআইপি অন্য, Commit অন্য, ইত্যাদি ...

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

  • archive_20150801.zip
  • archive_20150804.zip
  • archive_20150806.zip

এখন আমি unzipping দ্বারা শুরু হবে archive_20150801.zip এবং যে উপর ভিত্তি করে প্রাথমিক গিট রিপোজিটরি তৈরি। তারপর আমি unzip হবে archive_20150804.zip এবং টেনে আনুন / অনুলিপি করুন অথবা কেবলমাত্র UNZIP- যাতে স্টাফ পুরোনো ওভাররাইট করে archive_20150801.zip এবং তাই। সঙ্গে ডিত্তো archive_20150806.zip

প্রতিটি Commit এর পরে সাফ করুন: UnZIP, Commit, Delete, Unzip অন্য, Commit another, Delete another, Etc ...

তবে আপনি যদি প্রতিটি জিপ সংরক্ষণাগারের পুরানো ফাইলগুলির সাথে নতুন ফাইলগুলির বিনিময়ে অতিরিক্ত সঠিক হতে চান তবে আমি এটি করার সুপারিশ করব:

  1. UnZIP একটি সংরক্ষণাগার এবং এটি কমিট।
  2. তারপর যে কমিটি সম্পন্ন করা হয়, ম্যানুয়ালি- না মাধ্যমে git rm - রেপি ধারণকারী ডিরেক্টরি থেকে সব ফাইল মুছে ফেলুন। মত গিট নির্দিষ্ট জিনিস অপসারণ না নিশ্চিত করুন .git, .gitignore এবং যেমন.
  3. যে সম্পন্ন-এবং একটি অপেক্ষাকৃত খালি ডিরেক্টরি স্থান-আনজিপ করুন পরবর্তী সংরক্ষণাগার এবং এটির সামগ্রীগুলিকে গিট রেপোজিটরি ডিরেক্টরিতে রাখুন।
  4. এখন জায়গায় নতুন ফাইল দিয়ে একটি git add -A এবং একটি নতুন কমিটি না।
  5. যে সম্পন্ন সঙ্গে, মিশ্রণ আপনি যোগ করতে চান পরবর্তী জিপ সংরক্ষণাগার জন্য এক ধাপে ফিরে যান।

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

Commit তারিখ সোজা রাখা

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

2015-08-01 জিপ রিলিজ আর্কাইভ Commit।

এই ভাবে আপনি সহজেই প্রত্যক্ষ মন্তব্য ইতিহাস ব্রাউজ করে ভবিষ্যতে সংরক্ষণাগারের উত্সের উৎস কীভাবে জানতে পারেন।

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


আমি ঠিক একই জিনিস বলার একটি উত্তর পোস্ট সম্পর্কে ছিল। আপনি যদি এটি একটি পদক্ষেপ আরও নিতে চান তবে আপনি প্রতিটি কমিটির জন্য কমিটির তারিখটি সংশোধন করতে পারেন। স্ট্যাকওভারফ্লোতে এই পূর্ববর্তী প্রশ্নটি সুন্দরভাবে এটি জুড়েছে: stackoverflow.com/questions/454734/...
Gene

@ জিন সেই তারিখ পরিবর্তন টিপ লিঙ্কের জন্য ধন্যবাদ। আমি ব্যক্তিগতভাবে অন্তত বলার জন্য overkill একটি বিট মত কিছু করছেন। "ঐতিহাসিক" সংরক্ষণাগারগুলির সাথে ডিল করার সময় এটিকে সহজ করে তুলতে এটি সহজতর এবং এটি প্রেরণ বার্তাটিকে সামগ্রী সরবরাহ করতে দেয়।
JakeGould

ধন্যবাদ. আমি আশা করি যে কাজ করবে। তবে ফাইল তৈরি, মুছে ফেলার এবং পুনঃনামকরণের সাথে আমি কীভাবে মোকাবিলা করব? আমাকে কি আমার মতো পরিবর্তনগুলির জন্য চেক করতে হবে নাকি আমি ঠিক করতে হবে add -A পূর্বে commit?
Borodin

@ বারোডিন হ্যাঁ, শুধু ব্যবহার করুন git add -A প্রতিশ্রুতি আগে। এবং যদি আপনি প্রক্রিয়া সম্পর্কে অতিরিক্ত পরিষ্কার হতে চান তবে আপনি কেবল নিজে নিজে-সবগুলি ফাইলগুলিকে সংযোজন / সংযোজনগুলির মধ্যে সরিয়ে ফেলতে পারেন না। যদি আপনি এটি একটি ভাল পদ্ধতির অনুভব করেন তবে এটি কীভাবে পরিচালনা করবেন তা ব্যাখ্যা করার জন্য আমি আমার উত্তরটি সম্পাদনা করেছি।
JakeGould

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