গিট পুশ / নতুন সার্ভারে ক্লোন করুন


127

আমি কেবল গিট শিখছি এবং এমন কিছু আছে যা আমি কার্যকর করতে পারি না। আমার ম্যাকে স্থানীয়ভাবে গিট সংগ্রহস্থল তৈরি ও ব্যবহার করার পরে, আমি অন্য কোনও সার্ভারে একটি অনুলিপি অন্য কোথাও ঠেলাতে পারি? আমি ফায়ারওয়ালের পিছনে আছি তাই দুর্ভাগ্যক্রমে আমি git cloneঅন্য মেশিন থেকে চালাতে পারি না ।

উত্তর:


137
  1. git remote add নাম url
  2. git push নাম শাখা

উদাহরণ:

git remote add origin git@github.com:foo/bar.git
git push origin master

এর জন্য দস্তাবেজগুলি দেখুন git push- আপনি প্রদত্ত শাখার জন্য ডিফল্ট রিমোট হিসাবে একটি রিমোট সেট করতে পারেন; আপনি যদি না করেন তবে নামটি originবিশেষ। কেবল git pushএকা এই git push origin ব্র্যাঙ্কের মতোই করবে (আপনি যে শাখায় রয়েছেন তার জন্য)।


7
হিসেবে পুরো বিষয়টা বিস্তারিত প্রভাবের জন্য "পুশ ক্লোনিং" বরং চেয়ে একটি _branch_ pushinh : git push -u --allআমরা বর্জন করতে originযেমন ডিফল্ট ঠেলাঠেলি জন্য নাম ধরে এবং -uএছাড়াও দূরবর্তী শাখা ট্র্যাক করবে।
ক্রেগোক্স

13
এটি ব্যবহার করে সার্ভারে একটি খালি খালি সংগ্রহস্থান তৈরি করার জন্য পর্যাপ্ত হওয়া উচিত git init --bare /foo/bar.gitএবং তারপরে আপনার স্থানীয়টিকে এখানে চাপ দিন (এই উত্তরের মতো)। সার্ভারে জিপড / টার্ড সহ আপনাকে কোনও কিছু স্থানান্তর করার দরকার নেই।
ওডারওয়াট

1
সেকেন্ডিং ওডারওয়ট উদাহরণস্বরূপ, দূরবর্তী (যেমন git@github.com) এ লগইন করার সময় 'গিট থ্রিম --bare foo / বার.git' করুন তবে 'রিমোট উত্স' এর গন্তব্য থাকবে। গিথুব উদাহরণের জন্য, আমি মনে করি আপনি গিথাবের সংগ্রহশালা / ওয়েব ইন্টারফেস যুক্ত করতে পারেন এবং তারপরে "কমান্ড লাইন থেকে একটি বিদ্যমান সংগ্রহশালা চাপুন" পরামর্শটি অনুসরণ করতে পারেন। গিথুব একটি ট্র্যাকিং রেফারেন্স তৈরি করতে '-u' পরামর্শ দেয়।
ডেভ এক্স

এই পদ্ধতিটি ক্যানোনিকাল হতে পারে তবে এটি অবজেক্ট এবং গিটটি কম ব্যবহারযোগ্য করে তোলে। আমি আমাকে কিছুটা ভালোবাসি, তবে ভাল আকাশে এটির কিছু ইউআই সমস্যা আছে ..
রস রজার্স

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

75

আপনি যা করতে চাইতে পারেন তা হ'ল প্রথমে আপনার স্থানীয় মেশিনে, সংগ্রহশালার খালি ক্লোন তৈরি করুন

git clone --bare /path/to/repo /path/to/bare/repo.git  # don't forget the .git!

এখন, নতুন / repz.git ডিরেক্টরিটি tar / gzip ব্যবহার করে বা আপনার প্রিয় আর্কাইভ সরঞ্জামটি যাই হোক না কেন সংরক্ষণ করুন এবং সংরক্ষণাগারটি সার্ভারে অনুলিপি করুন।

আপনার সার্ভারে রেপো সংরক্ষণাগারভুক্ত করুন। এরপরে আপনাকে আপনার স্থানীয় সংগ্রহস্থলে একটি রিমোট সেট আপ করতে হবে:

git remote add repo-name user@host:/path/to/repo.git #this assumes you're using SSH

তারপরে আপনি রিমোট রেপো থেকে এটিতে চাপতে এবং টানতে সক্ষম হবেন:

git push repo-name branch-name
git pull repo-name branch-name

4
আপনি কি ".git ভুলবেন না" মন্তব্যটি ব্যাখ্যা করতে পারেন? ফোল্ডারের শেষের জন্য .git যুক্ত করার বিন্দুটি কোথায়? আমি কখন এটি করা উচিত? শুধুমাত্র একটি সম্মেলন?
লুব্রিক

5
".Git" একটি খালি গিট রেপো সনাক্তকরণের জন্য কেবলমাত্র অফিশিয়াল মান
গ্রান্ট লিমবার্গ

3
আমি এই ধারণাটি অনুসরণ করছি না ... এটি কি জিপ করা এবং অন্য কোনও পদ্ধতি ব্যবহার করার পরিবর্তে গিট সার্ভার সেটআপ করার এবং এটি "স্থানান্তর / অনুলিপি / জিনিসগুলিকে সিঙ্ক / ব্যাকআপে রাখার" জন্য ব্যবহার করার পুরো উদ্দেশ্যটি ভঙ্গ করে না ?
ক্রেগক্স

1
আমার ঠিক এটির প্রয়োজন ছিল, কারণ মূল রেপো এমন একটি নেটওয়ার্কে ছিল যেখানে আমি যে সার্ভারটি উপস্থিত থাকতে চাইতাম সেই নেটওয়ার্কটিতে অ্যাক্সেস নেই। এটি আমাকে এমন একটি বাক্সে রেপো রাখার অনুমতি দেয় যা অ্যাক্সেস করে।
michaeltwofish

3
@ কাওসগুলিতে আপনাকে কেবল একবারে জিপ / অনুলিপি / রেপো এক্সট্র্যাক্ট করতে হবে। এর পরে আপনার যা দরকার তা হ'ল গিট পুশ এবং টান।
স্পারবাইটস

9

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

সর্বাধিক দক্ষ উপায় হ'ল কোথাও বাহ্যিক সংগ্রহশালা ব্যবহার করা ( গিটহাব ব্যবহার করুন বা গিটোসিস সেটআপ করা ) এবং তারপরে git push


7
remote server> cd /home/ec2-user
remote server> git init --bare --shared  test
add ssh pub key to remote server
local> git remote add aws ssh://ec2-user@<hostorip>:/home/ec2-user/dev/test
local> git push aws master

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

1

গিথুব বলুন, আপনি একটি শাখাটিকে দূরবর্তী সার্ভারে ঠেলাতে পারেন । আপনাকে প্রথমে প্রাথমিক প্রকল্প সেটআপ করতে হবে, তারপরে আপনার প্রকল্পটি ক্লোন করুন এবং:

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