আমি এই উত্তরটি যুক্ত করছি কারণ এখানে আসার পরে (একই প্রশ্নটি নিয়ে), উত্তরের কোনও উত্তরই পুরোপুরি ব্যবহারযোগ্য রিমোট (খালি) রেপোতে কিছুই না যাওয়ার জন্য প্রয়োজনীয় সমস্ত প্রয়োজনীয় পদক্ষেপের বর্ণনা দেয় describe
দ্রষ্টব্য: এই উদাহরণটি খালি রেপোটির অবস্থানের জন্য স্থানীয় পাথগুলি ব্যবহার করে তবে অন্যান্য গিট প্রোটোকল (যেমন ওপি দ্বারা নির্দেশিত এসএসএইচ) ঠিক ঠিক কাজ করা উচিত।
গিটের সাথে কম পরিচিতদের জন্য আমি কয়েকটি নোট যুক্ত করার চেষ্টা করেছি।
1. খালি রেপো শুরু করুন ...
> git init --bare /path/to/bare/repo.git
Initialised empty Git repository in /path/to/bare/repo.git/
এটি একটি ফোল্ডার তৈরি করে (repo.git) এবং গিট রেপো উপস্থাপন করে এমন গিট ফাইলগুলির সাথে এটি পপুলেট করে। যেমনটি দাঁড়িয়েছে, এই রেপো অকেজো - এটির কোন কমিট নেই এবং আরও গুরুত্বপূর্ণভাবে, কোন শাখা নেই । যদিও আপনি এই রেপোটিকে ক্লোন করতে পারেন, আপনি এটি থেকে টানতে পারবেন না।
এর পরে, আমাদের একটি কার্যকারী ফোল্ডার তৈরি করতে হবে। আপনার বিদ্যমান ফাইল রয়েছে কিনা তার উপর নির্ভর করে এটি করার কয়েকটি উপায় রয়েছে।
2A। খালি রেপো ক্লোন করে একটি নতুন ওয়ার্কিং ফোল্ডার (কোনও বিদ্যমান ফাইল নেই) তৈরি করুন
git clone /path/to/bare/repo.git /path/to/work
Cloning into '/path/to/work'...
warning: You appear to have cloned an empty repository.
done.
এই কমান্ডটি কেবল তখনই কাজ করবে যদি /path/to/workনা থাকে বা খালি ফোল্ডার হয়। সতর্কবার্তাটি নোট করুন - এই পর্যায়ে আপনার কাছে এখনও দরকারী কিছু নেই। আপনি cd /path/to/workএবং চালানো হলে git status, আপনি কিছু পাবেন:
On branch master
Initial commit
nothing to commit (create/copy files and use "git add" to track)
কিন্তু এটি একটি মিথ্যা। আপনি প্রকৃতপক্ষে শাখায় নেই master(কারণ git branchকিছুই প্রত্যাবর্তন করে না) এবং এখনও পর্যন্ত কোনও কমিট নেই।
এর পরে, ওয়ার্কিং ফোল্ডারে কিছু ফাইল অনুলিপি / সরান / তৈরি করুন, সেগুলিকে গিটে যুক্ত করুন এবং প্রথম প্রতিশ্রুতি তৈরি করুন।
> cd /path/to/work
> echo 123 > afile.txt
> git add .
> git config --local user.name adelphus
> git config --local user.email adelphus@example.com
> git commit -m "added afile"
[master (root-commit) 614ab02] added afile
1 file changed, 1 insertion(+)
create mode 100644 afile.txt
git configকমান্ডগুলি কেবল তখনই প্রয়োজন যদি আপনি ইতিমধ্যে গিটকে না বলে থাকেন তবে আপনি কে। নোট করুন যে আপনি যদি এখন চালনা করেন তবে আপনি এখন তালিকাবদ্ধ শাখা git branchদেখতে পাবেন master। এখন চালান git status:
On branch master
Your branch is based on 'origin/master', but the upstream is gone.
(use "git branch --unset-upstream" to fixup)
nothing to commit, working directory clean
এটি বিভ্রান্তিকর - আপস্ট्रीमটি "যায়নি", এটি এখনও তৈরি করা হয়নি এবং git branch --unset-upstreamসাহায্য করবে না। তবে এটি ঠিক আছে, এখন আমাদের প্রথম প্রতিশ্রুতি আছে, আমরা ধাক্কা দিতে পারি এবং খালি রেপোতে মাস্টার তৈরি করা হবে।
> git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 207 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To /path/to/bare/repo.git
* [new branch] master -> master
এই মুহুর্তে, আমাদের কাছে একটি সম্পূর্ণ কার্যকরী বেয়ার রেপো রয়েছে যা মাস্টার শাখায় অন্যত্র ক্লোন করা যেতে পারে পাশাপাশি স্থানীয় কাজের অনুলিপি যা টানতে এবং ধাক্কা দিতে পারে।
> git pull
Already up-to-date.
> git push origin master
Everything up-to-date
2b। বিদ্যমান ফাইলগুলি থেকে একটি কার্যকারী ফোল্ডার তৈরি করুন
যদি আপনার কাছে ইতিমধ্যে এতে ফাইলগুলির সাথে একটি ফোল্ডার থাকে (যাতে আপনি এটিতে ক্লোন করতে পারবেন না), আপনি একটি নতুন গিট রেপো শুরু করতে পারেন, প্রথম প্রতিশ্রুতি যুক্ত করতে পারেন এবং তারপরে এটি খালি রেপোতে লিঙ্ক করতে পারেন।
> cd /path/to/work_with_stuff
> git init
Initialised empty Git repository in /path/to/work_with_stuff
> git add .
# add git config stuff if needed
> git commit -m "added stuff"
[master (root-commit) 614ab02] added stuff
20 files changed, 1431 insertions(+)
create mode 100644 stuff.txt
...
এই মুহুর্তে আমাদের প্রথম প্রতিশ্রুতিবদ্ধ এবং একটি স্থানীয় মাস্টার শাখা রয়েছে যা আমাদের একটি দূরবর্তী-ট্র্যাক আপ স্ট্রিম শাখায় পরিণত করতে হবে।
> git remote add origin /path/to/bare/repo.git
> git push -u origin master
Counting objects: 31, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (31/31), done.
Writing objects: 100% (31/31), 43.23 KiB | 0 bytes/s, done.
Total 31 (delta 11), reused 0 (delta 0)
To /path/to/bare/repo.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
-u(নতুন) ট্র্যাকড আপ স্ট্রিম শাখা সেট করতে গিট পুশের উপর পতাকাটি নোট করুন । ঠিক আগের মতোই, এখন আমাদের সম্পূর্ণরূপে কার্যকরী বেয়ার রেপো রয়েছে যা মাস্টার শাখায় অন্য কোথাও ক্লোন করা যায় পাশাপাশি স্থানীয় ওয়ার্কিং কপি যা টানতে এবং ধাক্কা দিতে পারে।
এগুলি কিছুটির কাছে সুস্পষ্ট বলে মনে হতে পারে তবে গিটটি আমাকে সেরা সময়ে বিভ্রান্ত করে তোলে (এটির ত্রুটি এবং স্থিতির বার্তাগুলিতে সত্যিই কিছুটা পুনরায় কাজ করা প্রয়োজন) - আশা করি, এটি অন্যকে সহায়তা করবে।
--sharedবিকল্পটিও যুক্ত করতেinitপারেন। এটি স্বয়ংক্রিয়ভাবে ভাণ্ডারগুলিতে গ্রুপ লিখনের অনুমতিগুলি যুক্ত করে - লিংক