গিটের সাহায্যে আমি কীভাবে একটি দূরবর্তী সংগ্রহস্থলের প্রাথমিক পুশ করব?


173

আমি অগণিত টিউটোরিয়াল পড়েছি এবং আমি সংক্ষেপে আসা অবিরত। আমি যা পেয়েছি তা এখানে:

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

আমি যা করছি তা এখানে:
১. সার্ভারে:
         ক। mkdir প্রকল্প
         খ। git init
         গ। গিট অ্যাড
         ঘ। গিট কমিট <--- "প্রতিশ্রুতিবদ্ধ হওয়ার কিছুই নেই"
2. ক্লায়েন্টের উপর:
         ক। রুবিমাইনে নতুন প্রকল্প তৈরি করুন।
         খ। প্রকল্পের শীর্ষ ডিরেক্টরিতে "গিট থ্রি"
         সি। "পরিবর্তনগুলি পুশ করুন" সার্ভারে <---- "কিছু রেফাকে ধাক্কা দিতে ব্যর্থ হয়েছে ..."।

আমি কি পদক্ষেপ মিস করছি?

উত্তর:


393

সার্ভারে:

mkdir my_project.git
cd my_project.git
git --bare init

ক্লায়েন্টে:

mkdir my_project
cd my_project
touch .gitignore
git init
git add .
git commit -m "Initial commit"
git remote add origin youruser@yourserver.com:/path/to/my_project.git
git push origin master

মনে রাখবেন যে আপনি যখন মূলটি যুক্ত করবেন তখন আপনি ব্যবহার করতে পারেন এমন বেশ কয়েকটি ফর্ম্যাট এবং স্কিমা রয়েছে। আপনার হোস্টিং পরিষেবা কী সরবরাহ করে তা দেখার জন্য আমি আপনাকে প্রস্তাব দিই।


আমি কেবল বদলেছি, যেহেতু আমি রুবিমিনের বাইরে কাজ করছি, তা হ'ল আমি স্পর্শটি .gitignore কে তার default 66 ডিফল্ট ফাইল দিয়ে একটি রেল প্রকল্প তৈরি করে প্রতিস্থাপন করেছি। আপনাকে অনেক ধন্যবাদ!
ডোনাল্ড হিউজেস

আদেশগুলি তালিকাভুক্ত করার জন্য। এইভাবে আমি দূরবর্তী সংগ্রহস্থলগুলিও সেট আপ করেছি।
ডেভ বাচার

5
আমার যুক্ত করা উচিত যে আপনি যদি এই রেপোতে অন্য লোকেরা আপনার সাথে সহযোগিতা করতে চান তবে আপনার আদেশের --sharedশেষ হওয়া উচিত should git --bare initএটি প্রয়োজনীয় অনুমতিগুলি সেটআপ করবে।
জোশ লিন্ডসে

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

21
আমি প্রথমবারের git push --set-upstream origin masterপরিবর্তে দৌড়াতে পছন্দ করি git push origin master। এটি আমাকে প্রতিবারের পরিবর্তে কেবল টাইপ করতে git pushবা git pullতার পরিবর্তে অনুমতি দেয় git push origin master। আপনার পছন্দ পছন্দ যাই হোক না কেন।
রিক স্মিথ

8

আপনি এটি চেষ্টা করতে পারেন:

সার্ভারে:

/etc/groupপছন্দ করতে নতুন গ্রুপ যুক্ত করা হচ্ছে (উদাহরণস্বরূপ)

mygroup:1001:michael,nir

নতুন গিট সংগ্রহস্থল তৈরি করুন:

mkdir /srv/git
cd /srv/git
mkdir project_dir
cd project_dir
git --bare init (initial git repository )
chgrp -R mygroup objects/ refs/ (change owner of directory )
chmod -R g+w objects/ refs/ (give permission write)

ক্লায়েন্টে:

mkdir my_project
cd my_project
touch .gitignore
git init
git add .
git commit -m "Initial commit"
git remote add origin youruser@yourserver.com:/path/to/my_project.git
git push origin master

(ক্লায়েন্ট পক্ষের জন্য জোশ লিন্ডসে ধন্যবাদ)

ক্লায়েন্টের পরে, সার্ভারে এই আদেশগুলি করুন:

cd /srv/git/project_dir
chmod -R g+w objects/ refs/

গিট টানার পরে যদি এই ত্রুটিটি পাওয়া যায়:

There is no tracking information for the current branch. Please specify which branch you want to merge with. See git-pull(1) for details

git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:

git branch --set-upstream new origin/<branch>

চেষ্টা করে দেখুন:

git push -u origin master

এটা সাহায্য করবে.


5

প্রতিশ্রুতিবদ্ধ হওয়ার পূর্বে আপনার কমপক্ষে একটি ফাইল সংগ্রহস্থলটিতে যুক্ত করতে হবে.gitignore


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

5

যদি আপনার প্রকল্পের একটি উজানের শাখা না থাকে, তবে এটিই যদি প্রথমবারের মতো আপনার স্থানীয় সংগ্রহস্থলে তৈরি করা ব্রাঙ্ক সম্পর্কে দূরবর্তী সংগ্রহস্থলটি জানতে পারে তবে নিম্নলিখিত কমান্ডটি কাজ করা উচিত।

git push --set-upstream origin <branch-name>

3

@ জোশ লিন্ডসে ইতিমধ্যে পুরোপুরি জবাব দিয়েছেন। তবে আমি কিছু তথ্য যুক্ত করতে চাই যেহেতু আমি প্রায়শই ssh ব্যবহার করি।

সুতরাং কেবল পরিবর্তন করুন:

git remote add origin youruser@yourserver.com:/path/to/my_project.git

প্রতি:

git remote add origin ssh://youruser@yourserver.com/path/to/my_project

নোট করুন যে ডোমেন এবং পাথের মধ্যে কোলন আর নেই।


1

আপনার ক্লায়েন্টে আপনাকে দূরবর্তী সংগ্রহস্থল স্থাপন করতে হবে:

git remote add origin ssh://myserver.com/path/to/project

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

আমি নিশ্চিত না যে এটির কোনও পার্থক্য রয়েছে কিনা, তবে আমার দূরবর্তী git --bare initসংগ্রহগুলি যোশ লিন্ডসির পরামর্শ অনুসারে তৈরি করা হয়েছে।
ডেভ বাচার

আমার একই সমস্যা ছিল "কিছু রেফ চাপতে ব্যর্থ" ... আমার তৈরি একটি রেপো থেকে মাস্টার শাখাটি ঠেলে দেওয়ার চেষ্টা করা হয়েছিল ... তখন আমি লক্ষ্য করেছি যে উত্সটির কোনও মাস্টার শাখা নেই - আপনি যে শাখার চেষ্টা করছেন সেটি নিশ্চিত করুন ধাক্কা বিদ্যমান করার :)
উপাত্ত গিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.