Fa-git-git-create-operation

提供:Dev Guides
移動先:案内検索

Git-درستعملیات

دراینبخشخواهیمدیدکهچگونهیکリモートリポジトリبسازیموازاینبهبعدباGit Serverبهآناشارهمیکنیم。 مابهیکGit Serverبرایفعالیتگروهینیازمندیم

ایجادیککاربرجدیدد

# 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.

ایجادیکانبارخالی

برایساختیکانبارجدید、ازدستور* bare-کهدرادامهاشدستور *init آوردهمیشود、استفادهمیکنیم。 اینکاریکانباربدونداشتن作業ディレクトリایجادمیکند。 براساستوافقمامجبوریمیکانبارخالیراباپسوند* 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

パブリック/プライベートRSAキーペア

git

ترمینالرابازکنیدودستوراتزیرراواردکنید、برایورودیهافقطکلیدを入力してくださいرافشاردهید。 بعدازپایانموفقاجرایکدهایک .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بادوکلیدایجادشدهاست、اولیPrivate(i.e。 id_rsa)ودیگریPublic(i.e。 id_rsa.pub)。*

تذکر:هرگزکلیدprivateخودرابادیگرانبهاشتراکنگذارید。

اضافهکردنکلیدبهکلیدهایاحرازهویت

فرضکنیم、دوبرنامهنویس1روییکپروژهکارمیکنند、بانامهایトム、ジェリーهردوکلیدهایعمومیایجادکردهاند。 چگونگیاستفادهازاینکلیدهادرادامهآوردهشدهاست

Tomکلیدعمومیخودرابادستور ssh-copy-id بهسرورافزودهاست、درزیرفعالیتTomآوردهشدهاست:

[tom@CentOS ~]$ pwd
/home/tom

[tom@CentOS ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub gituser@git.server.com

دستوراتبالانتایجزیررانمایشخواهندداد:

gituser@git.server.com's password:
Now try logging into the machine, with "ssh 'gituser@git.server.com'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.

Jerryنیزکلیدعمومیخودرابهسرورافزودهاست:

[jerry@CentOS ~]$ pwd
/home/jerry

[jerry@CentOS ~]$ ssh-copy-id -i ~/.ssh/id_rsa gituser@git.server.com

ونتایجزیرنمایشدادهمیشوندد:

gituser@git.server.com's password:
Now try logging into the machine, with "ssh 'gituser@git.server.com'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.

PushکردنتغییراتبهانبارGitرویسرور(Gitサーバーリポジトリ)

مایکانبارخالیرویسرورایجادکردیموبهدوکاربراجازهدسترسیدادیم。 トム・オー・ジェリー・ジェリー・オーディット・アンド・ジェリー・アンド・イット・ザ・プッシュ・ザ・ナリド。

git init init .git ディレクトリメタデータدرداخلانبارایجادمیکندメタデータدستورgit init .git ディレクトリ همیشهتنضیماتانبار、ازداخل .git/config فایلخواندهمیشوند。

TomیکディレクトリجدیدایجادمیکندREADMEفایلرادرآناضافهمیکند、وتغییراتشراباعنوان)توضیحات(初期コミット、コミット)。 بعدازCommitکردنتغییراتش、آنهارابادستور 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پیامهایログرابادستورgit logمشاهدهمیکند:

[tom@CentOS tom_repo]$ git log

دستوراتبالانتایجزیررادربرخواهندداشت:

commit 19ae20683fc460db7d127cf201a1429523b0e319
Author: Tom Cat <tom@finddevguides.com>
Date: Wed Sep 11 07:32:56 2013 +0530

Initial commit

Tomتغییراتشرارویانبارمحلیخود、قراردادهاست。 プッシュボタンを押すと、リモートサーバーのリモートリポジトリなどのgitサーバーをプッシュできます。 اماابتدامابایدانباررابهعنوانremoteمعرفی)اضافه(کنیم、اینکاررایکبارانجامخواهیمداد。 بعدازاینمیتواندتغییراتراpushکند

کندgitのブランチفقطهاییراکهیکسانباشندプッシュمیکند、بدینمعنیکهبرایهر枝ایکهدرانبارمحلیوجودداشتهباشدリモートリポジトリفقطوقتیبادستوربهروزمیشودکه枝همنامبامحلیدرآنوجودداشتهباشد押してください。 درجزوهیما、هروقتکهتغییراتیرادرpush origin master branchمیکنیم、شماازناممناسبباالزاماتخوداستفادهکنید。

[tom@CentOS tom_repo]$ git remote add origin gituser@git.server.com: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 gituser@git.server.com:project.git
* [new branch]
master −> master

اکنونتغییراتبهشهلموفقیتآمیزدرリモートリポジトリیاgit serverافزودهشدهاند。