আপনি চান যে আপনার কেন্দ্রীয় ভান্ডার খালি থাকে। বলুন যে এটিতে বাস করা মেশিনটির নাম দেওয়া হয়েছে static:
$ ssh static git init --bare /git/myproject.git
এই খালি সংগ্রহস্থলটি একটি কেন্দ্রীয় উপস্থাপক বিন্দু: এটি বিকাশের দিকে নয় এবং কাছ থেকে টানানোর জন্য।
কেন্দ্রীয় সংগ্রহস্থলের ক্লোনগুলিতে আপনার উন্নয়ন করুন:
$ cd ~/src
$ git clone static:/git/myproject.git
আপনি চালু থাকলেও static, ক্লোনটিতে কাজ করুন :
$ git clone /git/myproject.git
যদিও আপনি এই সংগ্রহস্থলটিতে একমাত্র কাজ করছেন, গিট ডকুমেন্টেশনের বিষয় শাখা যা বলে তার উপর নিজের কাজ করার অভ্যাস করুন । এর তাত্ক্ষণিক সুবিধা হ'ল এটি একটি পরিষ্কার মাস্টার রাখে , এটি হ'ল আপনি সর্বদা আপনার কেন্দ্রীয় মাস্টার শাখা থেকে আপনার বর্তমান স্থানীয় সংগ্রহস্থলের মাস্টারে কোনও মার্জ না করে টানতে পারেন।
উদাহরণ স্বরূপ:
$ git checkout -b fix-bug-in-foo
$ hack
$ git add file.c file.h
$ git commit -m "Fix ..."
এটি কোনও বড় ব্যাপার বলে মনে হচ্ছে না তবে এটি আপনাকে আংশিকভাবে রান্না করা অবস্থায় সেই শাখায় উপস্থাপিত হিসাবে প্রকল্পটি ছেড়ে দেওয়ার স্বাধীনতা দেয় বা যদি আপনার শীতল ধারণাটি ফ্লপ হিসাবে পরিণত হয় তবে আপনি সহজেই সেই শাখাটি ফেলে দিতে পারেন আপনার প্রকল্পে অন্য যে কোনও শাখায় ইতিমধ্যে কাজ করছে তা ভঙ্গ করছে। অসীম মুক্ত মুলিগান!
সম্ভবত আপনি সেই রাতে বাড়িতে গিয়ে একটি নতুন বৈশিষ্ট্য যুক্ত করেছেন। পরের দিন সকালে, আপনি
$ git checkout master
$ git pull
কেন্দ্রীয় ভান্ডারে রয়েছে তা প্রতিফলিত করতে আপনার স্থানীয় মাস্টারকে আপডেট করতে।
তবে এখন বলুন যে আপনি ফু বাগটি ঠিক করেছেন এবং এটি আপনার মাস্টার শাখায় অন্তর্ভুক্ত করতে প্রস্তুত। প্রথমে আপনি গত রাত থেকে পরিবর্তনের সাথে এটি সংহত করতে চান:
$ git checkout fix-bug-in-foo
$ git rebase master
rebaseকমান্ড আপনার সংগ্রহস্থলের বর্ণন করে দেন-যেন গত রাতে নতুন বৈশিষ্ট্য উপরে foo বিন্যাস বাগ সংশোধন। (এটি এক ধরণের পছন্দ svn update, তবে আরও নমনীয় এবং শক্তিশালী))
এখন এটি আপনার কেন্দ্রীয় গুরুকে পেতে:
$ git checkout master
$ git merge fix-bug-in-foo
$ git push origin master
আমরা মাস্টারকে বিশেষ হিসাবে বিবেচনা করছি, তবে এটি কেবল প্রচলিত। গিট সংগ্রহস্থলের মাধ্যমে আপনি খুব staticসহজেই বিভিন্ন ভাণ্ডারের বিভিন্ন শাখায় কাজ ভাগ করতে পারেন।