-
1. Почеток
- 1.1 За верзиска контрола
- 1.2 Кратка историја на Git
- 1.3 Основи на Гит
- 1.4 Командната линија
- 1.5 Инсталирање на Git
- 1.6 First-Time Git Setup
- 1.7 Getting Help
- 1.8 Заклучок
-
2. Основите на Git
-
3. Гранење во Git
- 3.1 Гранење објаснето
- 3.2 Основно разгранување и спојување
- 3.3 Branch Management
- 3.4 Работни процеси
- 3.5 Далечински гранки
- 3.6 Ребаза
- 3.7 Заклучок
-
4. Git на Сервер
- 4.1 Протоколите
- 4.2 Добивање на Git на сервер
- 4.3 Генерирање на вашиот SSH јавен клуч
- 4.4 Поставување на серверот
- 4.5 Гит демон
- 4.6 Smart HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Опции за домаќини на трети лица
- 4.10 Заклучок
-
5. Дистрибуиран Git
- 5.1 Дистрибуирани работни процеси
- 5.2 Придонес кон проект
- 5.3 Приватен мал тим
- 5.4 Одржување на проект
- 5.5 Заклучок
-
6. GitHub
-
7. Git Алатки
- 7.1 Revision Selection
- 7.2 Интерактивно стажирање
- 7.3 Stashing and Cleaning
- 7.4 Signing Your Work
- 7.5 Searching
- 7.6 Rewriting History
- 7.7 Reset Demystified
- 7.8 Напредно спојување
- 7.9 Rerere
- 7.10 Дебагирање со Git
- 7.11 Submodules
- 7.12 Збивање
- 7.13 Заменување
- 7.14 Складирање на ингеренции
- 7.15 Заклучок
-
8. Персонализација на Git
- 8.1 Git Configuration
- 8.2 Git Атрибути
- 8.3 Git Hooks
- 8.4 An Example Git-Enforced Policy
- 8.5 Заклучок
-
9. Git и други системи
- 9.1 Git како Клиент
- 9.2 Мигрирање кон Git
- 9.3 Заклучок
-
10. Внатрешноста на Git
- 10.1 Plumbing and Porcelain
- 10.2 Git Objects
- 10.3 Git References
- 10.4 Packfiles
- 10.5 The Refspec
- 10.6 Transfer Protocols
- 10.7 Maintenance and Data Recovery
- 10.8 Environment Variables
- 10.9 Заклучок
-
A1. Appendix A: Git во други околини
- A1.1 Graphical Interfaces
- A1.2 Git in Visual Studio
- A1.3 Git in Eclipse
- A1.4 Git in Bash
- A1.5 Git in Zsh
- A1.6 Git in Powershell
- A1.7 Заклучок
-
A2. Appendix B: Вметнување на Git во вашите апликации
- A2.1 Command-line Git
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
-
A3. Appendix C: Git команди
- A3.1 Setup and Config
- A3.2 Getting and Creating Projects
- A3.3 Basic Snapshotting
- A3.4 Branching and Merging
- A3.5 Sharing and Updating Projects
- A3.6 Inspection and Comparison
- A3.7 Debugging
- A3.8 Patching
- A3.9 Email
- A3.10 External Systems
- A3.11 Administration
- A3.12 Plumbing Commands
4.4 Git на Сервер - Поставување на серверот
Поставување на серверот
Ајде да одиме преку поставување SSH пристап на страната на серверот.
Во овој пример, ќе го користите методот authorized_keys
за автентикација на вашите корисници.
Ние, исто така, претпоставуваме дека ја воведувате стандардната дистрибуција на Linux како Ubuntu.
Note
|
Голем дел од она што е опишано овде може да се автоматизира со користење на командата |
Прво, ќе креирате git
корисник и` .ssh` директориум за тој корисник.
$ sudo adduser git
$ su git
$ cd
$ mkdir .ssh && chmod 700 .ssh
$ touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
Следно, треба да додадете некои јавни клучеви за програмери SSH до датотеката authorized_keys
за` git` корисникот.
Да претпоставиме дека имате доверливи јавни клучеви и сте ги зачувале во привремени датотеки.
Повторно, јавните клучеви изгледаат вака:
$ cat /tmp/id_rsa.john.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCB007n/ww+ouN4gSLKssMxXnBOvf9LGt4L
ojG6rs6hPB09j9R/T17/x4lhJA0F3FR1rP6kYBRsWj2aThGw6HXLm9/5zytK6Ztg3RPKK+4k
Yjh6541NYsnEAZuXz0jTTyAUfrtU3Z5E003C4oxOj6H0rfIF1kKI9MAQLMdpGW1GYEIgS9Ez
Sdfd8AcCIicTDWbqLAcU4UpkaX8KyGlLwsNuuGztobF8m72ALC/nLF6JLtPofwFBlgc+myiv
O7TCUSBdLQlgMVOFq1I2uPWQOkOWQAHukEOmfjy2jctxSDBQ220ymjaNsHT4kgtZg2AYYgPq
dAv8JggJICUvax2T9va5 gsg-keypair
Вие само ги додавате во датотеката authorized_keys
на корисникот` git` во својот .ssh
директориум:
$ cat /tmp/id_rsa.john.pub >> ~/.ssh/authorized_keys
$ cat /tmp/id_rsa.josie.pub >> ~/.ssh/authorized_keys
$ cat /tmp/id_rsa.jessica.pub >> ~/.ssh/authorized_keys
Сега, можете да поставите празен репозиториум за нив со стартување на git init
со` --bare` опцијата, која иницијализира складиштето без работен директориум:
$ cd /srv/git
$ mkdir project.git
$ cd project.git
$ git init --bare
Initialized empty Git repository in /srv/git/project.git/
Потоа, Џон, Џози или Џесика може да ја поттикнат првата верзија на нивниот проект во тоа складиште, додавајќи го како далечинско и притискајќи врз гранка.
Имајте на ум дека некој мора да се смести на машината и да создаде голи репозиториум секогаш кога сакате да додадете проект.
Ајде да го користиме "gitserver" како име на серверот на серверот на кој сте го наместиле вашиот git
корисник и складиштето.
Ако го работите внатрешно, а вие поставите DNS за gitserver
за да укажете на тој сервер, тогаш можете да ги користите командите доста како што е (под претпоставка дека` myproject` е постоечки проект со датотеки во него):
# on John's computer
$ cd myproject
$ git init
$ git add .
$ git commit -m 'initial commit'
$ git remote add origin git@gitserver:/srv/git/project.git
$ git push origin master
Во овој момент, другите можат да го клонираат и притискаат промени исто толку лесно:
$ git clone git@gitserver:/srv/git/project.git
$ cd project
$ vim README
$ git commit -am 'fix for the README file'
$ git push origin master
Со овој метод, можете брзо да добиете Git сервер за читање / запишување и да трчате за неколку програмери.
Треба да се напомене дека во моментов сите овие корисници исто така можат да се најават на серверот и да добијат школка како git
корисник.
Ако сакате да го ограничите тоа, ќе треба да ја смените школка на нешто друго во датотеката passwd
.
Можете лесно да го ограничите корисникот git
само да ги прави Git активностите со ограничена алатка за школка наречена` git-shell` што доаѓа со Git.
Ако го поставите ова како школка за пријавување на корисникот 'git`, тогаш git
корисникот не може да има нормален пристап до школка до вашиот сервер.
За да го користите ова, наведете git-shell
наместо bash или csh за школка за логирање на вашиот корисник.
За да го стори тоа, прво мора да додадете git-shell
во` / etc / shells` ако не е веќе таму:
$ cat /etc/shells # see if `git-shell` is already in there. If not...
$ which git-shell # make sure git-shell is installed on your system.
$ sudo vim /etc/shells # and add the path to git-shell from last command
Сега можете да ја уредите школка за корисник кој користи chsh <корисничко име> -s <shell>
:
$ sudo chsh git -s $(which git-shell)
Сега, git
корисникот може само да ја користи SSH-поврзувањето за да ги притисне и повлече Git репозиториите и не може да го исфрли на машината.
Ако се обидете, ќе видите одбивање на најава вака:
$ ssh git@gitserver
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
Connection to gitserver closed.
Сега Git мрежа командите се уште ќе работат само парична казна, но корисниците нема да можат да добијат школка.
Како излез се наведува, исто така можете да поставите директориум во домашниот директориум git
на корисникот кој малку ја прилагодува командата` git-shell`.
На пример, може да ги ограничите командите на Git што серверот ќе ги прифати или можете да ја прилагодите пораката што корисниците ја гледаат ако се обидат да SSH во таква ситуација.
Стартувај git help shell
за повеќе информации за прилагодување на школка.