.Git ডিরেক্টরি ছাড়াই গিট ক্লোন


144

gitকোনও ক্লোন করার সময় কি কোনও পতাকা পাঠাতে হবে , বলুন .gitডিরেক্টরিটি ক্লোন করবেন না ? যদি তা না .gitহয় তবে ক্লোনার পরে ডিরেক্টরি মুছে ফেলার জন্য কীভাবে একটি পতাকা ?


41
এখানেই প্রশ্ন উঠেছে না একটি প্রতারিত (মত "SVN রপ্তানি") কিভাবে একটি "Git রপ্তানি" করতে । এই প্রশ্নের কিভাবে উপর জিজ্ঞেস ক্লোন একটি (দূরবর্তী) সংগ্রহস্থলের ছাড়া.git ডিরেক্টরি। অভিযুক্ত দুপ জিজ্ঞাসা করে যে আপনার কাছে ইতিমধ্যে ডিরেক্টরি রয়েছে এমন একটি বিদ্যমান সংগ্রহস্থল কীভাবে রফতানি করতে হবে .git
mknaf

3
একমত। git archive"সম্ভাব্য সদৃশ" সমাধানটি যেমন বলেছে তেমন দূরবর্তী সংগ্রহস্থল আপনি করতে পারবেন না ।
ভ্লাদিস্লাভ রাস্ট্রুসনি

উত্তর:


214

ব্যবহার

git clone --depth=1 --branch=master git://someserver/somerepo dirformynewrepo
rm -rf ./dirformynewrepo/.git
  • গভীরতার বিকল্পটি সেই রেপোটি পাওয়ার জন্য ইতিহাসের নূন্যতম বিস্তৃত অনুলিপিটি নিশ্চিত করবে।
  • শাখা বিকল্পটি isচ্ছিক এবং নির্দিষ্ট না থাকলে মাস্টার পাবেন।
  • দ্বিতীয় লাইনটি আপনার ডিরেক্টরিটিকে dirformynewrepoআর গিট সংগ্রহস্থল হিসাবে তৈরি করবে না।
  • যদি আপনি পুনরাবৃত্ত সাবমডিউল ক্লোন করছেন, তবে গভীরতা এবং শাখা প্যারামিটার সাবমোডিয়ুলগুলিতে প্রযোজ্য নয়।

19
কি !$/.gitমানে?
জর্জেন পল

15
আগ্রহীদের জন্য, এটি শব্দ ডিজাইনারদের মধ্যে একটি, বাশ এবং zsh এর ইতিহাস সম্প্রসারণ বৈশিষ্ট্যের অংশ ।
রাফলেউইন্ড

রেপোর সমস্ত শাখার গভীরতা = 1 পাওয়ার কোনও উপায় আছে কি? শুধু মাস্টার বা নির্দিষ্ট শাখা নয়
গায়ান প্যাটিরেজ

2
আপনি এটি --no-একক-শাখা বিকল্পের সাহায্যে করেন - যেহেতু - ডিপথটি বোঝায় - একচেটিয়া-শাখা, আপনি এটি কোনও-একক-শাখা দিয়ে অন-ইমপ্লাই করতে পারেন। (গিট ক্লোন ম্যান পৃষ্ঠা থেকে নেওয়া)
রবার্ট স্টোডার্ড

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

29

যেহেতু আপনি কেবল ফাইলগুলি চান তাই আপনার এটিকে গিট রেপো হিসাবে ব্যবহার করার দরকার নেই।

rsync -rlp --exclude '.git' user@host:path/to/git/repo/ .

এবং এটি কেবল স্থানীয় পাথ এবং দূরবর্তী ssh / rsync পাথ নিয়ে কাজ করে, এটি যদি রিমোট সার্ভার কেবল git: // বা https: // অ্যাক্সেস সরবরাহ করে তবে তা কাজ করতে পারে না।


যে বিবেচনা .gitignore নেবে না?
জেজে রোমান

itub ঠিক আছে, এটি কেবল কাজের গাছটি অনুলিপি করছে। গিট চেকআউটটি এটি সঠিকভাবে করত, এখন এটি আর হয় না।
সিলভাইন

সুতরাং, সার্ভার কেবল git: // অ্যাক্সেস সরবরাহ করলে আপনি কী করবেন?
Rainb

3

বিকল্পভাবে, আপনার যদি Node.js ইনস্টল করা থাকে তবে আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:

npx degit GIT_REPO

npxনোডের সাথে আসে এবং এটি আপনাকে বাইনারি নোড-ভিত্তিক প্যাকেজগুলি প্রথমে ইনস্টল না করে চালানোর অনুমতি দেয় (বিকল্পভাবে, আপনি প্রথমে degitবিশ্বব্যাপী ব্যবহার করে ইনস্টল করতে পারেন npm i -g degit)।

ডিগিট হ'ল সেল্ট এবং রোলআপের স্রষ্টা রিচ হ্যারিসের তৈরি একটি সরঞ্জাম, যা তিনি গিট ফোল্ডারটি না রেখে দ্রুত একটি সংগ্রহস্থলকে ক্লোন করে নতুন প্রকল্প তৈরি করতে ব্যবহার করেন। তবে এটি একবারে কোনও রেপো ক্লোন করতেও ব্যবহার করা যেতে পারে ...


-1

আপনি সর্বদা করতে পারেন

git clone git://repo.org/fossproject.git && rm -rf fossproject/.git

44
সবকিছু ডাউনলোড করুন এবং পরে dir মুছে ফেলুন? উদাহরণস্বরূপ ইমিটের .git এ 1GB এর 95% রয়েছে। সুতরাং --depth = 1 হ'ল সমাধান এখানে স্পষ্টভাবে।
RParadox

1
আমি যখন আমি গভীরতা করি তখনই আমি .git ফোল্ডারটি দেখতে পাই = 1
আরেহ আরমন

@ আরিহআরমন অবশ্যই এটি দেখতে পাবেন। --Depth ব্যবহার করা .git তৈরি রোধ করে না, এটি কেবল এটি একটি অগভীর অনুলিপি তৈরি করে, .git এর জন্য এত ছোট আকারের। তবে আপনি যদি এটি কিছু না চান তবে আপনাকে পরে এটি সরিয়ে ফেলতে হবে।
zeycus
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.