Git - ऑपरेशन बनाएँ
इस अध्याय में, हम देखेंगे कि एक दूरस्थ गिट भंडार कैसे बनाया जाए; अब से, हम इसे Git Server के रूप में संदर्भित करेंगे। टीम सहयोग की अनुमति देने के लिए हमें एक Git सर्वर की आवश्यकता है।
नया उपयोगकर्ता बनाएँ
# add new group
[root@CentOS ~]# groupadd dev
# add new user
[root@CentOS ~]# useradd -G devs -d /home/gituser -m -s /bin/bash gituser
# change password
[root@CentOS ~]# passwd gituser
उपरोक्त आदेश निम्नलिखित परिणाम का उत्पादन करेगा।
Changing password for user gituser.
New password:
Retype new password:
passwd: all authentication token updated successfully.
एक बेर रिपोजिटरी बनाएँ
आइए हम एक नए भंडार का उपयोग करके आरंभ करते हैं init इसके बाद कमांड --bareविकल्प। यह एक कार्यशील निर्देशिका के बिना भंडार को आरंभ करता है। अधिवेशन द्वारा, नंगे भंडार का नाम दिया जाना चाहिए.git।
[gituser@CentOS ~]$ pwd
/home/gituser
[gituser@CentOS ~]$ mkdir project.git
[gituser@CentOS ~]$ cd project.git/
[gituser@CentOS project.git]$ ls
[gituser@CentOS project.git]$ git --bare init
Initialized empty Git repository in /home/gituser-m/project.git/
[gituser@CentOS project.git]$ ls
branches config description HEAD hooks info objects refs
सार्वजनिक / निजी आरएसए कुंजी जोड़ी उत्पन्न करें
हमें एक Git सर्वर को कॉन्फ़िगर करने की प्रक्रिया के माध्यम से चलते हैं, ssh-keygen उपयोगिता सार्वजनिक / निजी RSA कुंजी जोड़ी उत्पन्न करती है, जिसका उपयोग हम उपयोगकर्ता प्रमाणीकरण के लिए करेंगे।
एक टर्मिनल खोलें और निम्नलिखित कमांड दर्ज करें और प्रत्येक इनपुट के लिए बस एंटर दबाएं। सफल होने के बाद, यह एक निर्माण करेगा.ssh घर निर्देशिका के अंदर निर्देशिका।
tom@CentOS ~]$ pwd
/home/tom
[tom@CentOS ~]$ ssh-keygen
उपरोक्त आदेश निम्नलिखित परिणाम का उत्पादन करेगा।
Generating public/private rsa key pair.
Enter file in which to save the key (/home/tom/.ssh/id_rsa): Press Enter Only
Created directory '/home/tom/.ssh'.
Enter passphrase (empty for no passphrase): ---------------> Press Enter Only
Enter same passphrase again: ------------------------------> Press Enter Only
Your identification has been saved in /home/tom/.ssh/id_rsa.
Your public key has been saved in /home/tom/.ssh/id_rsa.pub.
The key fingerprint is:
df:93:8c:a1:b8:b7:67:69:3a:1f:65:e8:0e:e9:25:a1 tom@CentOS
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
|
.
|
| Soo |
| o*B. |
| E = *.= |
| oo==. . |
| ..+Oo
|
+-----------------+
ssh-keygen ने दो कुंजी उत्पन्न की हैं, पहला निजी है (यानी, id_rsa) और दूसरा सार्वजनिक है (यानी, id_rsa.pub)।
Note: कभी भी अपनी निजी कुंजी दूसरों के साथ साझा न करें।
अधिकृत_की में कुंजी जोड़ना
मान लीजिए कि एक प्रोजेक्ट पर दो डेवलपर्स काम कर रहे हैं, अर्थात् टॉम एंड जेरी। दोनों उपयोगकर्ताओं ने सार्वजनिक कुंजी उत्पन्न की है। आइए देखें कि प्रमाणीकरण के लिए इन कुंजियों का उपयोग कैसे करें।
टॉम ने सर्वर से अपनी सार्वजनिक कुंजी को जोड़ा ssh-copy-id नीचे दिए गए आदेश के रूप में -
[tom@CentOS ~]$ pwd
/home/tom
[tom@CentOS ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
उपरोक्त आदेश निम्नलिखित परिणाम का उत्पादन करेगा।
[email protected]'s password:
Now try logging into the machine, with "ssh '[email protected]'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
इसी तरह, जेरी ने ssh-copy-id कमांड का उपयोग करके सर्वर में अपनी सार्वजनिक कुंजी जोड़ी।
[jerry@CentOS ~]$ pwd
/home/jerry
[jerry@CentOS ~]$ ssh-copy-id -i ~/.ssh/id_rsa [email protected]
उपरोक्त आदेश निम्नलिखित परिणाम का उत्पादन करेगा।
[email protected]'s password:
Now try logging into the machine, with "ssh '[email protected]'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
रिपोजिटरी में परिवर्तन
हमने सर्वर पर एक नंगे भंडार का निर्माण किया है और दो उपयोगकर्ताओं के लिए उपयोग की अनुमति दी है। अब से, टॉम और जेरी अपने परिवर्तनों को रिमोट के रूप में जोड़कर भंडार में धकेल सकते हैं।
Git init कमांड बनाता है .git हर बार जब यह कॉन्फ़िगरेशन पढ़ता है, तो संग्रह के बारे में मेटाडेटा को संग्रहीत करने के लिए निर्देशिका .git/config फ़ाइल।
टॉम एक नई निर्देशिका बनाता है, README फ़ाइल जोड़ता है, और प्रारंभिक बदलाव के रूप में अपना परिवर्तन करता है। प्रतिबद्ध होने के बाद, वह चलाकर प्रतिबद्ध संदेश की पुष्टि करता हैgit log आदेश।
[tom@CentOS ~]$ pwd
/home/tom
[tom@CentOS ~]$ mkdir tom_repo
[tom@CentOS ~]$ cd tom_repo/
[tom@CentOS tom_repo]$ git init
Initialized empty Git repository in /home/tom/tom_repo/.git/
[tom@CentOS tom_repo]$ echo 'TODO: Add contents for README' > README
[tom@CentOS tom_repo]$ git status -s
?? README
[tom@CentOS tom_repo]$ git add .
[tom@CentOS tom_repo]$ git status -s
A README
[tom@CentOS tom_repo]$ git commit -m 'Initial commit'
उपरोक्त आदेश निम्नलिखित परिणाम का उत्पादन करेगा।
[master (root-commit) 19ae206] Initial commit
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 README
टॉम गेट लॉग कमांड को निष्पादित करके लॉग संदेश की जांच करता है।
[tom@CentOS tom_repo]$ git log
उपरोक्त आदेश निम्नलिखित परिणाम का उत्पादन करेगा।
commit 19ae20683fc460db7d127cf201a1429523b0e319
Author: Tom Cat <[email protected]>
Date: Wed Sep 11 07:32:56 2013 +0530
Initial commit
टॉम ने स्थानीय रिपॉजिटरी में अपने बदलाव किए। अब, दूरस्थ रिपॉजिटरी में बदलावों को आगे बढ़ाने का समय आ गया है। लेकिन इससे पहले, हमें रिपॉजिटरी को रिमोट के रूप में जोड़ना होगा, यह एक बार का ऑपरेशन है। इसके बाद, वह परिवर्तनों को दूरस्थ रिपॉजिटरी में सुरक्षित रूप से धकेल सकता है।
Note- डिफ़ॉल्ट रूप से, Git केवल मिलान करने वाली शाखाओं को धक्का देता है: स्थानीय शाखा में मौजूद प्रत्येक शाखा के लिए, दूरस्थ पक्ष को अद्यतन किया जाता है यदि उसी नाम वाली एक शाखा पहले से ही वहां मौजूद है। हमारे ट्यूटोरियल में, हर बार हम परिवर्तनों को धक्का देते हैंorigin master शाखा, अपनी आवश्यकता के अनुसार उपयुक्त शाखा नाम का उपयोग करें।
[tom@CentOS tom_repo]$ git remote add origin [email protected]:project.git
[tom@CentOS tom_repo]$ git push origin master
उपरोक्त आदेश निम्नलिखित परिणाम का उत्पादन करेगा।
Counting objects: 3, done.
Writing objects: 100% (3/3), 242 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To [email protected]:project.git
* [new branch]
master −> master
अब, परिवर्तन सफलतापूर्वक दूरस्थ रिपॉजिटरी के लिए प्रतिबद्ध हैं।