পুরোপুরি গিট রেপো ব্যাকআপ করবেন?


136

সমস্ত শাখা এবং ট্যাগ সহ পুরো গিট রেপো ব্যাকআপ করার কোনও সহজ উপায় আছে?


2
আমার ধারণা আপনি এখানে স্থানীয় গিট রেপোতে রেফার করছেন।
Ztyx


3
সঠিক উত্তরটি হ'ল: গিট ক্লোন - এমিরার git@example.com/your-repo.git এটি আপনার পুরো সংগ্রহশালা, নোট, শাখা, ট্র্যাকিং ইত্যাদি অনুলিপি করবে
জন

আমি যে ওয়েব অনুসন্ধান চালিয়েছি তার ফলাফলগুলিতে এই প্রশ্নটি অন্তর্ভুক্ত ছিল না: "গিট ক্লোন একেবারে সব কিছুতে শাখাগুলি ট্যাগ নোট করে"; "ভান্ডারগুলিতে গিট ক্লোন ক্লোন"; "সমস্ত ট্যাগ নোটের সাথে গিট ক্লোন ক্লোন করুন"।
কেনি এভিট

উত্তর:


64

কী সম্পর্কে এটির এক ক্লোন তৈরি করা যায়?

git clone --mirror other/repo.git

প্রতিটি সংগ্রহস্থল তার রিমোটের ব্যাকআপ।


7
@ ড্যানিয়েল: আপনি যদি কোনও ভাণ্ডার ক্লোন করেন তবে আপনি প্রতিটি শাখা আনেন, তবে কেবলমাত্র ডিফল্টটিকে চেক করা হয়। ব্যবহার করে দেখুন git branch -a। সম্ভবত এটি আরও সুস্পষ্টভাবে: কোনও স্টোর সংগ্রহের পরে আপনি প্রতিটি শাখা আনবেন না, আপনি প্রতিশ্রুতি আনবেন। শাখাগুলি কেবল একটি বিদ্যমান প্রতিশ্রুতিবদ্ধতার উল্লেখ করে।
কিংক্রাঞ্চ

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

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

ফাইল অনুমতি সম্পর্কে কি? গিট ক্লোন কি অগত্যা তাদের অনুলিপি করে? আমি বিশ্বাস করি এমন বিকল্পগুলির উপর নির্ভর করে
এন্টেরেলাম

192
git bundle

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

git bundle create /tmp/foo-all --all

বিস্তারিত:

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


এই বান্ডিলটি ব্যবহার করার জন্য, আপনি এটি ক্লোন করতে পারেন, একটি অস্তিত্বহীন ফোল্ডার নির্দিষ্ট করে (কোনও গিট রেপোর বাইরে):

git clone /tmp/foo-all newFolder

11
সম্পূর্ণ ব্যাকআপের জন্য
সমস্ত যুক্ত করুন

1
এটি, git bundleআমার মতের সঠিক উত্তর, এবং গৃহীত উত্তর নয়। আমি মনে করি তিনি ক্লোন কমান্ডটি ভাল জানেন, তিনি যদি এই জাতীয় প্রশ্ন জিজ্ঞাসা করতে পারেন তবে এটি স্পষ্টতই তাঁর পক্ষে যথেষ্ট নয় (কারণ এটি একটি ক্লোন, এবং ডাম্প নয়)। ডাম্পগুলি সহজ কপি হিসাবে বিভিন্ন জিনিস, উদাহরণস্বরূপ: 1) সাধারণ কাজের জন্য তাদের সর্বোত্তম (বা এমনকি সক্ষম) হওয়া প্রয়োজন হয় না 2) তবে তাদের ডেটা দুর্নীতির বিরুদ্ধে একটি ভাল প্রতিরোধ এবং মেরামতযোগ্যতা থাকা প্রয়োজন 3) এটি প্রায়শই দরকারী যদি তারা সহজে ইনক্রিমেন্টাল ব্যাকআপের জন্য পৃথক-সক্ষম হয়, তবে এটি অনুলিপিগুলিতে একটি লক্ষ্য নয়।
পিটারহ - মনিকা

3
নোট করুন git bundleবা না git cloneপেয়ে সবকিছুই উদাহরণস্বরূপ হুক স্ক্রিপ্টস।
জিতরেক্স

2
@ জিতরেক্স হ্যাঁ, এটি নকশা দ্বারা। হুকগুলি বিপজ্জনক হতে পারে বা সংবেদনশীল তথ্য অন্তর্ভুক্ত করতে পারে।
ভনসি

আমি কি git bundleকোনও রিমোট রেপো ব্যবহার করতে পারি ?
রায়ান শিলিংটন

24

কিছু অন্যান্য উত্তরের প্রসারিত করা, আমি এটিই করি:

রেপো সেটআপ করুন: git clone --mirror user@server:/url-to-repo.git

তারপরে আপনি যখন ব্যাকআপটি রিফ্রেশ করতে চান: git remote updateক্লোন অবস্থান থেকে।

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

এটি পারমাণবিক তাই সাধারণ কপি করার মতো সমস্যা নেই।

Http://www.garron.me/en/bit/backup-git-bare-repo.html দেখুন


20

কিংক্রাঞ্চ এবং ভনসির দুর্দান্ত উত্তরের উপর বিস্তৃত

আমি তাদের উভয় একত্রিত:

git clone --mirror git@some.origin/reponame reponame.git
cd reponame.git
git bundle create reponame.bundle --all

এর পরে আপনার কাছে একটি ফাইল রয়েছে যা reponame.bundleসহজেই অনুলিপি করা যায়। তারপরে আপনি এটি ব্যবহার করে একটি নতুন সাধারণ গিট সংগ্রহস্থল তৈরি করতে পারেন git clone reponame.bundle reponame

মনে রাখবেন যে git bundleঅনুলিপিগুলিতে কেবল কিছু অনুলিপি (শাখা বা ট্যাগ) তৈরি করে তার প্রতিলিপিগুলি অনুলিপি করে। তাই জটলা কমিটগুলি বান্ডেলে সংরক্ষণ করা হয় না।


1
ভাল সংক্ষিপ্তসার। +1 টি।
ভোনসি

2
আমার মনে হয় তুমি বোঝাতে চাইছ git bundle create reponame.bundle --all?
জো

ধন্যবাদ লক্ষ্য করার জন্য @ জো। স্পষ্টভাবে. আমি উত্তর আপডেট করব।
কিম্মো আহোকাস

4

ডিরেক্টরিতে সমস্ত কিছু রয়েছে .git। আপনি যে কোনও ফাইল হিসাবে ঠিক আপনার প্রকল্পের পাশাপাশি ফিরে আসুন।


2
এর অর্থ কি, গিট প্রকল্পযুক্ত ডিরেক্টরিটির সমস্ত বিষয়বস্তু ব্যাক আপ করা যথেষ্ট?
রবীন্দ্রনাথ আকিলা

1
সুনীলের সাথে একমত - এটি কোনও পারমাণবিক অপারেশন বলে মনে হয় না।
jia103

1
এবং আপনি কীভাবে নিশ্চিত করবেন যে ব্যাকআপ তৈরি করার সময় সেই ডিরেক্টরিতে ফাইলগুলিতে কোনও পরিবর্তন করা হয়নি?
রায়েডওয়াল্ড

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

আমি মনে করি তিনি খুব ভাল জানেন copyবা cpআদেশগুলি জানেন এবং এটি তার প্রয়োজনের সাথে খাপ খায় না। এবং আমি আরও মনে করি, তিনি একটি খালি ভাণ্ডার নিয়ে ভাবেন (যদিও এটি অনুলিপি করা যায় তবে আমি মনে করি এটি একটি সম্পূর্ণ বৈশিষ্ট্যযুক্ত ব্যাকআপ নয়)।
পিটারহ - মনিকা

4

গিট বান্ডিল, বা ক্লোন ব্যবহার করুন

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


3

আপনি ন্যূনতম স্টোরেজ আকারে গিট-কপি দিয়ে গিট রেপো ব্যাকআপ করতে পারেন ।

git copy /path/to/project /backup/project.repo.backup

তারপরে আপনি এর সাথে আপনার প্রকল্পটি পুনরুদ্ধার করতে পারেন git clone

git clone /backup/project.repo.backup project

2
github.com/cybertk/git-copy/blob/master/bin/git-copy#L8-L36 : এটি সাধারণ git clone --bare+ এর জন্য অনেক কাজ বলে মনে হচ্ছে git push --force
ভোনসি

@ ভনসি হ্যাঁ, তবে এটি পুনঃস্থাপনের সময় কিছু অতিরিক্ত বৈশিষ্ট্য থাকতে পারে, বা এটি গিট রেপোর অভ্যন্তরীণ কাঠামোটি খনন করতে পারে যা এটি কিছু অপ্টিমাইজেশনের জন্য ব্যবহার করতে পারে (গন্তব্য পুনর্গঠন, বা গতি বৃদ্ধি ইত্যাদি)।
পিটারহ - মনিকা

3

সঠিক উত্তর আইএমও হ'ল গিট ক্লোন - এমিরর । এটি আপনার রেপোটিকে পুরোপুরি ব্যাকআপ করবে।

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

git clone --mirror git@example.com/your-repo.git
  • সাধারণত কোনও রেপো ক্লোনিংয়ের সাথে সমস্ত শাখা অন্তর্ভুক্ত থাকে না, কেবল মাস্টার।

  • রেপো ফোল্ডারটি অনুলিপি করা কেবল সেই শাখাগুলিকে "অনুলিপি" করবে যা কেবল টেনে নেওয়া হয়েছে ... সুতরাং ডিফল্টরূপে এটি কেবলমাত্র মাস্টার শাখা বা অন্যান্য শাখা যা আপনি আগে যাচাই-বাছাই করেছেন।

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


গিট ক্লোন - এমিরার কি সামঞ্জস্যপূর্ণ পয়েন্ট-ইন-টাইম ব্যাকআপ তৈরি করে? ব্যাকআপ চলাকালীন কোনও ব্যবহারকারী কী প্রতিশ্রুতি দেয়? এটি কি প্রত্যাখ্যাত, সারিবদ্ধ, বা ব্যাকআপে অন্তর্ভুক্ত?
বেনিয়ামিন গুডাক্রে

3

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

সুতরাং আসল প্রশ্নটি বাছাইয়ের সাথে শুরু করুন:

  • লক্ষ্যটি হ'ল গিট সংগ্রহস্থলের "পূর্ণ" ব্যাকআপের যতটা সম্ভব সম্ভব হয়।

তারপরে এটিকে সাধারণ শুভেচ্ছার সাথে সমৃদ্ধ করা এবং কিছু প্রিসেটিং নির্দিষ্ট করা:

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

1. একটি "পূর্ণ" গিট রেপো ব্যাকআপ কি?

"100%" ব্যাকআপ কী তা নিয়ে দৃষ্টিভঙ্গি আলাদা হয়। এখানে দুটি টিপিক্যাল রয়েছে।

# 1 বিকাশকারীর দৃষ্টিভঙ্গি

  • সন্তুষ্ট
  • তথ্যসূত্র

গিট একটি বিকাশকারী সরঞ্জাম এবং এর মাধ্যমে git clone --mirrorএবং এর মাধ্যমে এই দৃষ্টিকোণকে সমর্থন করে git bundle --all

# 2 প্রশাসনের দৃষ্টিভঙ্গি

  • সামগ্রী ফাইল
    • বিশেষ কেস "প্যাকফিল": গিট আবর্জনা সংগ্রহের সময় প্যাকফাইলে সংযুক্ত এবং সংযোগকারী বস্তুগুলিকে সংযুক্ত করে (দেখুন git gc)
  • গিট কনফিগারেশন
    • দেখতে https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain
    • ডক্স: man git-config, man gitignore
    • .git / কনফিগ
    • .git / বিবরণ (হুকস এবং সরঞ্জামগুলির জন্য, যেমন-পোস্ট-প্রাপ্ত ইমেল হুক, গিটোলাইট, গিটওয়েব, ইত্যাদি)
    • .git / আঙ্গুলসমূহ /
    • .git / তথ্য / (সংগ্রহস্থল বাদ দেওয়া ফাইল, ইত্যাদি)
  • Ptionচ্ছিক: ওএস কনফিগারেশন (ফাইল সিস্টেমের অনুমতি ইত্যাদি)

গিটটি একটি বিকাশকারী সরঞ্জাম এবং এটিকে প্রশাসকের কাছে ছেড়ে দেয়। গিট কনফিগারেশন এবং ওএস কনফিগারেশনের ব্যাকআপটি সামগ্রীর ব্যাকআপ থেকে আলাদা হিসাবে দেখা উচিত।

2. কৌশল

  • "কোল্ড-কপি করো"
    • এর ফাইলগুলিতে একচেটিয়া অ্যাক্সেস থাকার জন্য পরিষেবাটি বন্ধ করুন। ডাউনটাইম!
  • "হট-কপি করো"
    • পরিষেবা ব্যাকআপ উদ্দেশ্যে একটি নির্দিষ্ট রাষ্ট্র সরবরাহ করে। চলমান পরিবর্তনগুলি সেই রাষ্ট্রকে প্রভাবিত করে না।

৩. অন্যান্য বিষয় নিয়ে ভাবতে হবে

তাদের বেশিরভাগ ব্যাকআপের জন্য জেনেরিক।

  • পুরো ব্যাকআপগুলি ধরে রাখার জন্য কি যথেষ্ট জায়গা আছে? কত প্রজন্ম সংরক্ষণ করা হবে?
  • একটি বর্ধিত পদ্ধতির চেয়েছিলেন? আর কতগুলি প্রজন্ম সঞ্চিত থাকবে এবং কখন আবার পূর্ণ ব্যাকআপ তৈরি করবেন?
  • তৈরির পরে বা সময়ের সাথে সাথে কোনও ব্যাকআপ দূষিত হয়নি তা যাচাই করবেন কীভাবে?
  • ফাইল সিস্টেম হার্ডলিঙ্কগুলি সমর্থন করে?
  • একটি একক সংরক্ষণাগার ফাইলে ব্যাকআপ রাখবেন বা ডিরেক্টরি কাঠামো ব্যবহার করবেন?

4. কি গিট ব্যাকআপ কন্টেন্ট সরবরাহ করে

  • git gc --auto

    • ডক্স: ম্যান গিট-জিসি
    • একটি সংগ্রহস্থল পরিষ্কার করে এবং সংযোগ দেয়।
  • git bundle --all

    • ডক্স: ম্যান গিট-বান্ডিল, ম্যান গিট-রেভ-তালিকা
    • পারমাণবিক = "হট-কপি"
    • বান্ডিলগুলি ডাম্প ফাইল এবং গিটের সাথে সরাসরি ব্যবহার করা যেতে পারে (যাচাই, ক্লোন ইত্যাদি)।
    • ইনক্রিমেন্টাল এক্সট্রাকশন সমর্থন করে।
    • মাধ্যমে যাচাইযোগ্য git bundle verify
  • git clone --mirror

    • ডক্স: ম্যান গিট-ক্লোন, ম্যান গিট- এফএসসি, গিট ক্লোন - এমিরর এবং গিট ক্লোন - এর মধ্যে কী পার্থক্য
    • পারমাণবিক = "হট-কপি"
    • আয়নাগুলি হ'ল বাস্তব গিট সংগ্রহস্থল।
    • এই কমান্ডের প্রাথমিক উদ্দেশ্যটি হ'ল একটি সম্পূর্ণ সক্রিয় আয়না তৈরি করা, যা পর্যায়ক্রমে মূল সংগ্রহস্থল থেকে আপডেটগুলি আনে।
    • স্থান নষ্ট এড়াতে একই ফাইল সিস্টেমে আয়নাগুলির জন্য হার্ডলিঙ্কগুলি সমর্থন করে।
    • মাধ্যমে যাচাইযোগ্য git fsck
    • একটি সম্পূর্ণ ফাইল ব্যাকআপ স্ক্রিপ্টের ভিত্তি হিসাবে মিররগুলি ব্যবহার করা যেতে পারে।

৫. শীতল-অনুলিপি

একটি শীতল-অনুলিপি ব্যাকআপ সর্বদা একটি সম্পূর্ণ ফাইল ব্যাকআপ করতে পারে: গিট রেপোগুলিতে সমস্ত অ্যাক্সেস অস্বীকার করুন , ব্যাকআপ করুন এবং আবার অ্যাক্সেসের অনুমতি দিন।

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

6. হট-কপি

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

"100% প্রশাসক" হট-কপি ব্যাকআপ

  • বিকল্প 1: git bundle --allসামগ্রীর সম্পূর্ণ / ইনক্রিমেন্টাল ডাম্প ফাইলগুলি তৈরি করতে এবং পৃথকভাবে অনুলিপি / ব্যাকআপ কনফিগারেশন ফাইল তৈরি করতে ব্যবহার করুন ।
  • বিকল্প 2: git clone --mirrorআলাদাভাবে কনফিগারেশন ব্যবহার করুন , পরিচালনা করুন এবং অনুলিপি করুন, তারপরে মিররটির পুরো ফাইল ব্যাকআপ করুন।
    • মন্তব্য:
    • একটি আয়না একটি নতুন সংগ্রহস্থল, এটি তৈরির বর্তমান গিট টেম্পলেট দিয়ে রচিত।
    • কনফিগারেশন ফাইল এবং ডিরেক্টরিগুলি পরিষ্কার করুন, তারপরে মূল উত্স সংগ্রহস্থল থেকে কনফিগারেশন ফাইলগুলি অনুলিপি করুন।
    • ব্যাকআপ স্ক্রিপ্টটি মিররটিতে ফাইল অনুমতিগুলির মতো ওএস কনফিগারেশন প্রয়োগ করতে পারে।
    • হার্ডলিঙ্কগুলিকে সমর্থন করে এমন একটি ফাইল সিস্টেম ব্যবহার করুন এবং গতি অর্জনের জন্য এবং ব্যাকআপের সময় স্থান ব্যবহার কমাতে উত্স সংগ্রহস্থলের হিসাবে একই ফাইল সিস্টেমে আয়না তৈরি করুন।

7. পুনরুদ্ধার

  • লক্ষ্য এবং মেশিনের সর্বশেষ "করার পদ্ধতি" দর্শনের জন্য গিট কনফিগারেশনটি পরীক্ষা করুন এবং গ্রহণ করুন।
  • ওএস কনফিগারেশন এবং মেশিন এবং সর্বশেষ "করার পদ্ধতি" দর্শনের লক্ষ্য নির্ধারণ করতে পরীক্ষা করুন এবং গ্রহণ করুন।

0
cd /path/to/backupdir/
git clone /path/to/repo
cd /path/to/repo
git remote add backup /path/to/backupdir
git push --set-upstream backup master

এটি একটি ব্যাকআপ তৈরি করে এবং সেটআপটি তৈরি করে, যাতে আপনি ব্যাকআপটি আপডেট করতে গিট পুশ করতে পারেন, সম্ভবত আপনি যা করতে চান তা। কেবল নিশ্চিত করুন, সেই / পথ / টু / ব্যাকআপডির এবং / পাথ / টু / রেপো হ'ল কমপক্ষে ভিন্ন ভিন্ন হার্ড ড্রাইভ, অন্যথায় এটি করার পক্ষে তেমন কোনও বোঝা যায় না।


আমি মনে করি তিনি ক্লোন কমান্ডটি ভাল জানেন, তিনি যদি এই জাতীয় প্রশ্ন জিজ্ঞাসা করতে পারেন তবে এটি স্পষ্টতই তাঁর পক্ষে যথেষ্ট নয় (কারণ এটি একটি ক্লোন, এবং ডাম্প নয়)। ডাম্পগুলি সহজ কপি হিসাবে বিভিন্ন জিনিস, উদাহরণস্বরূপ: 1) সাধারণ কাজের জন্য তাদের সর্বোত্তম (বা এমনকি সক্ষম) হওয়া প্রয়োজন হয় না 2) তবে তাদের ডেটা দুর্নীতির বিরুদ্ধে একটি ভাল প্রতিরোধ এবং মেরামতযোগ্যতা থাকা প্রয়োজন 3) এটি প্রায়শই দরকারী যদি তারা সহজে ইনক্রিমেন্টাল ব্যাকআপের জন্য পৃথক-সক্ষম হয়, তবে এটি অনুলিপিগুলিতে একটি লক্ষ্য নয়।
পিটারহ - মনিকা

0

এখানে দুটি বিকল্প রয়েছে:

  1. সার্ভারে রেপুর পুরো খালি বিষয়বস্তু রয়েছে বলে আপনি সরাসরি গিট রেপো ডিরেক্টরিটির একটি টার নিতে পারেন । ব্যাকআপ নেওয়ার সময় কেউ রেপোতে কাজ করছেন বলে কিছুটা সম্ভাবনা রয়েছে।

  2. নীচের কমান্ডটি রেপোর খালি ক্লোনটি দেবে (ঠিক এটি সার্ভারে রয়েছে), তারপরে আপনি যে কোনও সমস্যা ছাড়াই ক্লোন করেছেন এমন অবস্থানের একটি ট্যারে নিতে পারেন।

    git clone --bare {your backup local repo} {new location where you want to clone}
    

আমি মনে করি তিনি ক্লোন বা টার কমান্ডটি ভাল জানেন, তিনি যদি এই জাতীয় প্রশ্ন জিজ্ঞাসা করতে পারেন তবে এটি স্পষ্টভাবে তাঁর পক্ষে যথেষ্ট নয় (কারণ এটি ক্লোন, এবং ডাম্প নয়)। ডাম্পগুলি সহজ কপি হিসাবে বিভিন্ন জিনিস, উদাহরণস্বরূপ: 1) সাধারণ কাজের জন্য তাদের সর্বোত্তম (বা এমনকি সক্ষম) হওয়া প্রয়োজন হয় না 2) তবে তাদের ডেটা দুর্নীতির বিরুদ্ধে একটি ভাল প্রতিরোধ এবং মেরামতযোগ্যতা থাকা প্রয়োজন 3) এটি প্রায়শই দরকারী যদি তারা সহজে বর্ধিত ব্যাকআপগুলির জন্য পৃথক-সক্ষম হয়, তবে এটি অনুলিপিগুলিতে একটি লক্ষ্য নয়।
পিটারহ - মনিকা

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

0

যদি এটি গিথুব এ থাকে, বিটবাকেটে নেভিগেট করুন এবং আপনার গিথুব রেপোকে ব্যক্তিগত রেপো হিসাবে আমদানি করতে "আমদানি সংগ্রহস্থল" পদ্ধতিটি ব্যবহার করুন।

যদি এটি বিটবাকেটে থাকে তবে অন্যদিকেও করুন।

এটি একটি সম্পূর্ণ ব্যাকআপ তবে ক্লাউডে থাকে যা আমার আদর্শ পদ্ধতি।


-7

আমি যতদূর জানি আপনার রেপো যে ডিরেক্টরিটি রয়েছে সেটির একটি অনুলিপি তৈরি করতে পারেন!

cp -r project project-backup

কেউ দয়া করে এটি নিশ্চিত করতে পারেন? আমি মনে করি এটি সঠিক ব্যাকআপ নেওয়ার জন্য সঠিক পন্থা।
রবীন্দ্রনাথ আকিলা

5
আমি মনে করি অনুলিপি স্ন্যাপশটটি শেষ করতে পারে যখন অনুলিপি অপারেশন চলাকালীন পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ / সংরক্ষণের দিকে ঠেলে দেওয়া হয়। গিট কমান্ডের মতো ব্যবহার করা git clone --bareআপনাকে একটি ধারাবাহিক স্ন্যাপশট দেবে।
ইলকে

1
সুনীলের সাথে একমত - এটি পারমাণবিক বলে মনে হয় না।
jia103

1
@ jia103 এটি সর্বদা কোনও সমস্যা নয় যদি এটি পারমাণবিক না হয় - আপনার কেবল এটি জানতে হবে এবং আপনাকে সক্ষম হওয়া দরকার, গ্যারান্টি দিয়ে আপনি কাজ করার সময় অন্য কেউ রেপোতে পৌঁছাতে পারবেন না। তবে আমি মনে করি যে ওপি একটি সুনির্দিষ্ট চায়, কাজের জন্য গিট রেপোস অনুকূলিতকরণের সরঞ্জামের জন্য, সহজ ফাইল অনুলিপি সম্ভবত তাঁর পক্ষে সুপরিচিত।
পিটারহ - মনিকা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.