Git的基本操作

第一部分:Git的基本操作

初始化操作

$ git config -global user.name #設(shè)置提交者名字

$ git config -global user.email #設(shè)置提交者郵箱

$ git config -global core.editor #設(shè)置默認(rèn)文本編輯器

$ git config -global merge.tool #設(shè)置解決合并沖突時(shí)差異分析工具

$ git config -list #檢查已有的配置信息

創(chuàng)建新版本庫(kù)

$ git clone #克隆遠(yuǎn)程版本庫(kù)

$ git init #初始化本地版本庫(kù)

修改和提交

$ git add . #添加所有改動(dòng)過(guò)的文件

$ git add #添加指定的文件

$ git mv #文件重命名

$ git rm #刪除文件

$ git rm -cached #停止跟蹤文件但不刪除

$ git commit -m #提交指定文件

$ git commit -m “commit message” #提交所有更新過(guò)的文件

$ git commit -amend #修改最后一次提交

$ git commit -C HEAD -a -amend #增補(bǔ)提交(不會(huì)產(chǎn)生新的提交歷史紀(jì)錄)

查看提交歷史

$ git log #查看提交歷史

$ git log -p #查看指定文件的提交歷史

$ git blame #以列表方式查看指定文件的提交歷史

$ gitk #查看當(dāng)前分支歷史紀(jì)錄

$ gitk #查看某分支歷史紀(jì)錄

$ gitk --all #查看所有分支歷史紀(jì)錄

$ git branch -v #每個(gè)分支最后的提交

$ git status #查看當(dāng)前狀態(tài)

$ git diff #查看變更內(nèi)容

撤消操作

$ git reset -hard HEAD #撤消工作目錄中所有未提交文件的修改內(nèi)容

$ git checkout HEAD #撤消指定的未提交文件的修改內(nèi)容

$ git checkout HEAD. #撤消所有文件

$ git revert #撤消指定的提交

分支與標(biāo)簽

$ git branch #顯示所有本地分支

$ git checkout #切換到指定分支或標(biāo)簽

$ git branch #創(chuàng)建新分支

$ git branch -d #刪除本地分支

$ git tag #列出所有本地標(biāo)簽

$ git tag #基于最新提交創(chuàng)建標(biāo)簽

$ git tag -d #刪除標(biāo)簽

合并與衍合

$ git merge #合并指定分支到當(dāng)前分支

$ git rebase #衍合指定分支到當(dāng)前分支

遠(yuǎn)程操作

$ git remote -v #查看遠(yuǎn)程版本庫(kù)信息

$ git remote show #查看指定遠(yuǎn)程版本庫(kù)信息

$ git remote add #添加遠(yuǎn)程版本庫(kù)

$ git fetch #從遠(yuǎn)程庫(kù)獲取代碼

$ git pull #下載代碼及快速合并

$ git push #上傳代碼及快速合并

$ git push : / #刪除遠(yuǎn)程分支或標(biāo)簽

$ git push -tags #上傳所有標(biāo)簽

附:參考

中文版權(quán)威教程Git Pro

簡(jiǎn)明使用指導(dǎo)

第二部分:搭建C/S架構(gòu)Git服務(wù)器

一、搭建步驟

Git支持本地(local)、ssh、git和http(s)這四種協(xié)議進(jìn)行傳輸,本部分將基于ssh協(xié)議搭建(此協(xié)議不利于開(kāi)源,適合公司團(tuán)隊(duì)使用)。

本文操作大部分在Ubuntu服務(wù)器端完成。

1、我們?cè)诜?wù)器端新增加一個(gè)用戶(本文為gitadmin)用于管理git倉(cāng)庫(kù):

Ubuntu下啟動(dòng)終端,鍵入命令:

$ sudo useradd -m gitadmin?? --首次執(zhí)行sudo命令需要按提示輸入管理員密碼

$ sudo passwd gitadmin?????? --設(shè)置用戶gitadmin密碼

將gitadmin設(shè)置為管理員用戶,方法很多,這里用通過(guò)修改sudoers文件實(shí)現(xiàn):

$ sudo vim /etc/sudoers

接下來(lái)進(jìn)到vim編輯器,鍵入i進(jìn)入插入模式,找到下面這行并添加gitadmin:

# User privilege specification

root ALL=(ALL:ALL)? ALL

gitadmin? ALL=(ALL:ALL)? ALL

鍵盤esc退出插入模式,輸入冒號(hào)(:),光標(biāo)出現(xiàn)在底端,輸入wq回車退出。

$ su gitadmin?????????????????? --輸入剛剛設(shè)置的密碼切換到gitadmin用戶

2、安裝配置ssh服務(wù)

$ sudo apt-get install openssh-server openssh-client

按提示輸入管理員密碼,同意[Y],安裝完畢。OpenSSH為自由軟件,是ssh的開(kāi)源實(shí)現(xiàn)。

$ sudo vim /etc/ssh/sshd_config

找到下面幾行,去掉前面"#"注釋,并設(shè)置:

StrictModes? no --在用戶名和其公鑰文件名不匹配時(shí)將通過(guò)驗(yàn)證

RSAAuthentication yes?? --使用純的RSA認(rèn)證

PubkeyAuthentication yes??? --允許Public Key AuthorizedKeysFile???? %h/.ssh/authorized_keys

上面這個(gè)配置是設(shè)定免密碼登陸的賬號(hào)公鑰存儲(chǔ)路徑

ps:如果是小團(tuán)隊(duì),把每個(gè)人的公鑰收集起來(lái)放到/home/git/.ssh/authorized_keys文件里問(wèn)題不大;如果團(tuán)隊(duì)較大或是有權(quán)限要求,這種方式就很不靈活了,這時(shí)可以用Gitosis來(lái)管理公鑰,我將在后文介紹。

接著重啟ssh服務(wù)

$ sudo service ssh restart?? 或是?? $ sudo /etc/init.d/ssh restart

ssh服務(wù)器到這里安裝配置完畢。

出于安全考慮,可以在本教程配置完畢后設(shè)置gitadmin用戶不允許登錄shell,可通過(guò) 用vim打開(kāi)編輯/etc/passwd文件并找到下面的一行(自行創(chuàng)建的用戶名):

gitadmin:x:1001:1001:,,,:/home/gitadmin:/bin/bash

改為:

gitadmin:x:1001:1001:,,,:/home/gitadmin:/usr/bin/git-shell

這樣,gitadmin用戶可以正常通過(guò)ssh使用git,但無(wú)法登錄shell,因?yàn)槲覀優(yōu)間itadmin 用戶指定的git-shell每次一登錄就自動(dòng)退出

3、安裝配置git服務(wù)器

$ sudo apt-get install git git-core?? --安裝git服務(wù)器

$ sudo mkdir /home/gitadmin/repositories??? --創(chuàng)建git倉(cāng)庫(kù)存儲(chǔ)目錄

$ sudo chown gitadmin:gitadmin /home/gitadmin/repositories? --設(shè)定所有者

$ sudo chmod 755 /home/gitadmin/repositories?? --設(shè)置倉(cāng)庫(kù)訪問(wèn)權(quán)限

接下來(lái)初始化全局設(shè)置

$ git config --global user.name “gitadmin”

$ git config --global user.email “gitadmin@server”

@后的server為本機(jī)IP,可用ifconfig查看

4、基本的git服務(wù)器(without gitosis)

這里是git本地服務(wù)器最基本的實(shí)現(xiàn),不使用下文講解的gitosis進(jìn)行管理,適合人數(shù)較 少并且沒(méi)有權(quán)限管理要求的小團(tuán)隊(duì)。

PC客戶端:

首先安裝git客戶端(參見(jiàn)后文方法)

配置無(wú)密碼登陸需拷貝pc端公鑰至/home/git/.ssh/authorized_keys,在git.bash下:

$ ssh-keygen -t rsa?????? --生成本機(jī)密鑰,公鑰默認(rèn)在~/.ssh/id_rsa.pub

$ ssh-copy-id gitadmin@host?? --上傳公鑰,遠(yuǎn)程主機(jī)host為服務(wù)器IP

若不用以上命令,用下面這條命令則清楚地解釋了公鑰的保存過(guò)程:

$ ssh gitadmin@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

Ubuntu服務(wù)器端:

你可以在服務(wù)器端自行創(chuàng)建倉(cāng)庫(kù),先選定一個(gè)目錄作為Git倉(cāng)庫(kù),假定是/srv/sample.git, 在/srv目錄下輸入命令:

$ sudo git init --bare sample.git

$ sudo chown -R gitadmin:gitadmin sample.git --把owner改為gitadmin

這樣Git就會(huì)創(chuàng)建一個(gè)裸倉(cāng)庫(kù),裸倉(cāng)庫(kù)沒(méi)有工作區(qū),因?yàn)榉?wù)器上的Git倉(cāng)庫(kù)純粹是為 了共享,所以不讓用戶直接登錄到服務(wù)器上去改工作區(qū),并且服務(wù)器上的Git倉(cāng)庫(kù)通常 都以.git結(jié)尾。

至此,最基本的git本地服務(wù)器已經(jīng)搭建完畢,可以通過(guò)git clone命令克隆遠(yuǎn)程倉(cāng)庫(kù)在各自電腦上運(yùn)行了。

5、安裝配置gitosis

簡(jiǎn)單地說(shuō),Gitosis 就是一套用來(lái)管理 authorized_keys文件和實(shí)現(xiàn)簡(jiǎn)單連接限制的腳本。有趣的是,用來(lái)添加用戶和設(shè)定權(quán)限的并非通過(guò)網(wǎng)頁(yè)程序,而只是管理一個(gè)特殊的 Git 倉(cāng)庫(kù)。你只需要在這個(gè)特殊倉(cāng)庫(kù)內(nèi)做好相應(yīng)的設(shè)定,然后推送到服務(wù)器上,Gitosis 就會(huì)隨之改變運(yùn)行策略。

創(chuàng)建管理員公鑰和私鑰:

在默認(rèn)用戶的主目錄路徑下,運(yùn)行以下命令,按照提示創(chuàng)建(可直接回車略過(guò)) $ ssh-keygen -t rsa

默認(rèn)生成2048位,如果需要提高安全級(jí)別,也可以通過(guò)下面的命令

$ ssh-keygen -t rsa -b 4096

公鑰和私鑰默認(rèn)會(huì)保存在~/.ssh目錄下,如下所示:

id_rsa id_rsa_pub(公鑰) known_hosts

安裝gitosis:

安裝python的setup tool

$sudo apt-get install python-setuptools

獲取并安裝gitosis

$ cd /tmp --切換到緩存目錄下載安裝包,在關(guān)機(jī)時(shí)會(huì)被系統(tǒng)自動(dòng)清理

$ git clone?https://github.com/tv42/gitosis.git?--下載安裝包

$ cd gitosis

$ sudo python setup.py install --到此gitosis安裝完成

配置gitosis:

gitosis會(huì)默認(rèn)將git倉(cāng)庫(kù)放在gitadmin主目錄下,并自動(dòng)管理authorized_keys文件 :

$ cp ~/.ssh/id_rsa.pub /tmp --拷貝出管理員公鑰

向gitosis添加公鑰并初始化:

$ sudo -H -u gitadmin gitosis-init < /tmp/id_rsa.pub

Initialized empty Git repository in /home/gitadmin/repositories/gitosis-admin.git/

Reinitialized existing Git repository in /home/gitadmin/repositories/gitosis-admin.git/

這樣該公鑰的擁有者gitadmin就能修改用于配置Gitosis的那個(gè)特殊Git倉(cāng)庫(kù)了。接 下來(lái),需要手工對(duì)該倉(cāng)庫(kù)中的post-update 腳本加上可執(zhí)行權(quán)限:

$ sudo chmod 755 /home/gitadmin/repositories/gitosis-admin.git/hooks/post-update

到此為止git服務(wù)器端的搭建結(jié)束,管理員為gitadmin。

6、倉(cāng)庫(kù)管理員信息:

現(xiàn)在在終端下進(jìn)到用戶主目錄,克隆Gitosis的控制倉(cāng)庫(kù):

$ git clone gitadmin@server:gitosis-admin.git

當(dāng)前目錄下將得到一個(gè)名為 gitosis-admin 的工作目錄,主要由兩部分組成:

$ cd gitosis-admin

$ find .

./gitosis.conf

./keydir

./keydir/gitadmin.pub

gitosis.conf 文件是用來(lái)設(shè)置用戶、倉(cāng)庫(kù)和權(quán)限的控制文件。keydir 目錄則是保存所有 具有訪問(wèn)權(quán)限用戶公鑰的地方(每人一個(gè))。在 keydir 里的文件名(如我gitadmin.pub) 應(yīng)該跟你的不一樣,Gitosis會(huì)自動(dòng)從使用 gitosis-init 腳本導(dǎo)入的公鑰尾部描述中獲取 該名字。用編輯器 gitosis.conf 文件的內(nèi)容,只包含與剛剛克隆的 gitosis-admin 相關(guān) 的信息:

$ cat gitosis.conf

[gitosis]

[group gitosis-admin]

members = gitadmin

writable = gitosis-admin

它顯示用戶 gitadmin是唯一能管理 gitosis-admin 項(xiàng)目的人。

二、測(cè)試用例

PC客戶端下:

1、安裝git客戶端

訪問(wèn)git官網(wǎng),下載安裝包(許多Windows上的git服務(wù)都以msysgit作為支撐支撐軟件,建議讀者安裝):

下載后按默認(rèn)配置安裝完畢,會(huì)出現(xiàn)git.bash命令行工具:

1、接下來(lái)的pc端工作在git.bash命令行內(nèi)完成:

測(cè)試能否ssh登錄遠(yuǎn)程主機(jī):

$ cd ~

$ ssh gitadmin@host --遠(yuǎn)程登錄

由于無(wú)法確認(rèn)遠(yuǎn)程host主機(jī)的真實(shí)性,shell會(huì)告訴你它的公鑰指紋讓你確認(rèn),鍵入yes:

Are you sure you want to continue connecting (yes/no)?? yes

輸入遠(yuǎn)程主機(jī)gitadmin的密碼,正常情況下這里就能夠登錄成功,顯示gitadmin用戶

$ exit --退出遠(yuǎn)程登錄

配置免密碼登陸:

$ ssh-keygen -t rsa?????? --生成本機(jī)密鑰,公鑰默認(rèn)在~/.ssh/id_rsa.pub

未使用gitosis情況下執(zhí)行:

$ ssh-copy-id gitadmin@host?? --上傳公鑰,遠(yuǎn)程主機(jī)host為服務(wù)器IP

使用gitosis管理公鑰則執(zhí)行:

$ scp ~/.ssh/id_rsa.pub gitadmin@host:/tmp --遠(yuǎn)程拷貝公鑰至服務(wù)器臨時(shí)目錄

2、可視化工具

在安裝官方git的同時(shí),它也給我們提供了gitk 和 git-gui兩種可視化工具:

gitk 是一個(gè)歷史記錄的圖形化查看器。

cd 到一個(gè)Git倉(cāng)庫(kù),然后鍵入:

$ gitk [git log options]

git-gui 則主要是一個(gè)用來(lái)制作提交的工具:

$ git gui

注意:

本部分末參考鏈接里有官網(wǎng)推薦的Git圖形化客戶端(github上還有更多選擇),更親近不熟悉命令行的使用者。由于這一部分的選擇較多,但究其實(shí)現(xiàn)原理還是一樣的,所以這里就不做延伸。請(qǐng)使用者參考本文或搜索自行選擇的客戶端相應(yīng)教程進(jìn)行配置。

Ubuntu服務(wù)器端下:

1、管理gitosis

$ cd ~

$ git clone gitadmin@host:/home/gitadmin/gitosis-admin.git

$ cd gitosis-admin/

接下來(lái)各個(gè)用戶按照前面安裝配置gitosis時(shí)提到的辦法生成各自的ssh公鑰文件后, scp上傳到服務(wù)器/tmp 目錄下,也可由服務(wù)器管理員手動(dòng)取得,并最終重命名為各用戶 名后拷貝到keydir目錄下,就能實(shí)現(xiàn)使用git協(xié)同作業(yè)了。

2、gitosis.conf文件講解:

[gitosis]

[group gitosis-admin]

writable = gitosis-admin

members = a@server1

[group developers]

writable = helloworld

members = a@server1 b@server2

[group test]

readonly = helloworld

members = c@server3

這個(gè)配置文件表達(dá)了如下含義:gitosis-admin組成員有a,該組對(duì)gitosis-admin倉(cāng)庫(kù) 有讀寫(xiě)權(quán)限; developers組有a,b兩個(gè)成員,該組對(duì)helloworld倉(cāng)庫(kù)有讀寫(xiě)權(quán)限; test 組有c一個(gè)成員,對(duì)helloworld倉(cāng)庫(kù)有只讀權(quán)限。當(dāng)然目前這些配置文件的修改只是 在你的本地,你必須推送到gitserver上才能真正生效。

操作方法:

加入新文件、提交并推送到git服務(wù)器:

$ git add . --添加命令,這里的點(diǎn)’.’表示當(dāng)前目錄

$ git commit -am "add helloworld project and users" --提交,并描述此次行為

$ git remote add origin ssh://gitadmin@host:helloworld.git

添加遠(yuǎn)程主機(jī)

$ git push origin master --推送到服務(wù)器master分支

這里介紹遠(yuǎn)程主機(jī)URL修改方法,需要進(jìn)到待修改倉(cāng)庫(kù)目錄下:

方法一:先刪除$ git remote rm origin 再添加$ git remote add origin URL

方法二:$ git remote set-url origin URL

方法三:進(jìn)入.git目錄下修改config文件

3、演示操作

現(xiàn)在我們來(lái)添加一個(gè)新項(xiàng)目。為此我們要建立一個(gè)名為mobile的新段落,在其中羅列 手機(jī)開(kāi)發(fā)團(tuán)隊(duì)的開(kāi)發(fā)者,以及他們擁有寫(xiě)權(quán)限的項(xiàng)目。由于 'gitadmin' 是系統(tǒng)中的唯 一用戶,我們把他設(shè)為唯一用戶,并允許他讀寫(xiě)名為 iphone_project 的新項(xiàng)目:

[group mobile]

members = gitadmin

writable = iphone_project

修改完之后,提交 gitosis-admin 里的改動(dòng),并推送到服務(wù)器使其生效:

選擇目錄創(chuàng)建裸倉(cāng)(本步驟可省略,我們不用事先到服務(wù)器上手工創(chuàng)建該項(xiàng)目的裸倉(cāng)庫(kù), Gitosis會(huì)在第一次遇到推送時(shí)自動(dòng)創(chuàng)建):

$ mkdir iphone_project.git

$ sudo git init --bare iphone_project.git

$ sudo chown -R gitadmin:gitadmin iphone_project.git

添加新工程并提交用戶組:

$ git commit -am 'add iphone_project and mobile group'

在新工程 iphone_project 首次推送數(shù)據(jù)到服務(wù)器前,得先設(shè)定該服務(wù)器地址為遠(yuǎn)程 倉(cāng)庫(kù),注意使用gitosis可以不用指明完整路徑,只需要一個(gè)冒號(hào)加項(xiàng)目名字即可, Gitosis會(huì)自動(dòng)幫你映射到實(shí)際位置:

$ git remote add origin gitadmin@host:iphone_project.git

推送到服務(wù)器:

$ git push origin master

要和朋友們?cè)谝粋€(gè)項(xiàng)目上協(xié)同工作,就得重新添加他們的公鑰。不過(guò)這次不用在服務(wù)器 上一個(gè)一個(gè)手工添加到 ~/.ssh/authorized_keys 文件末端,而只需管理 keydir 目錄中的 公鑰文件(文件的命名由 gitosis.conf 中用戶的標(biāo)識(shí)名決定),并修改gitosis.conf , 最后用前面的方法推送到服務(wù)器配置生效。

現(xiàn)在我們?yōu)?John,Josie 和 Jessica 添加公鑰:

$ cp /tmp/id_rsa.john.pub keydir/john.pub

$ cp /tmp/id_rsa.josie.pub keydir/josie.pub

$ cp /tmp/id_rsa.jessica.pub keydir/jessica.pub

然后把他們都加進(jìn) 'mobile' 團(tuán)隊(duì),讓他們對(duì) iphone_project 具有讀寫(xiě)權(quán)限:

[group mobile]

members = scott john josie jessica

writable = iphone_project

如果你提交并推送這個(gè)修改,四個(gè)用戶將同時(shí)具有該項(xiàng)目的讀寫(xiě)權(quán)限。

Gitosis 也具有簡(jiǎn)單的訪問(wèn)控制功能。如果想讓John只有讀權(quán)限,可以這樣做:

[group mobile]

members = scott josie jessica

writable = iphone_project

[group mobile_readonly]

members = john

readonly = iphone_project

現(xiàn)在 John 可以克隆和獲取更新,但 Gitosis 不會(huì)允許他向項(xiàng)目推送任何內(nèi)容。像這 樣的組可以隨意創(chuàng)建,多少不限,每個(gè)都可以包含若干不同的用戶和項(xiàng)目。甚至還可以 指定某個(gè)組為成員之一(在組名前加上 @前綴),自動(dòng)繼承該組的成員:

[group mobile_committers]

members = scott josie jessica

[group mobile]

members?? = @mobile_committers

writable? = iphone_project

[group mobile_another]

members?? = @mobile_committers john

writable? = another_iphone_project

如果遇到意外問(wèn)題,試試看把 loglevel=DEBUG 加到 [gitosis] 的段落,即把日志設(shè)置為調(diào)試級(jí)別,記錄更詳細(xì)的運(yùn)行信息。如果一不小心搞錯(cuò)了配置,失去了推送權(quán)限,也可以手工修改服務(wù)器上的 /home/git/.gitosis.conf 文件,因?yàn)镚itosis 實(shí)際是從該文件讀取信息的。它在得到推送數(shù)據(jù)時(shí),會(huì)把新的 gitosis.conf 存到該路徑上。所以如果你手工編輯該文件的話,它會(huì)一直保持到下次向gitosis-admin 推送新版本的配置內(nèi)容為止。

三、參考

SSH原理與應(yīng)用

官網(wǎng)手冊(cè)<pro git>,參看服務(wù)器部分

Git服務(wù)器Gitosis安裝設(shè)置

Git的可視化客戶端(GUI Client)

第三部分:搭建B/S架構(gòu)Git服務(wù)器

一、搭建步驟

本部分將講解如何基于瀏覽器訪問(wèn)Git服務(wù)器,雖然 GitWeb 相當(dāng)簡(jiǎn)單,但眼下有一些更現(xiàn)代,功能更全的Git服務(wù)器,其中有幾個(gè)開(kāi)源的解決方案可供人們選擇安裝。GitLab是其中最出名的一個(gè),我將使用它作為示例并討論其安裝和使用。這比GitWeb要復(fù)雜的多并且需要更多的維護(hù),但它是一個(gè)功能更為健全的方案。

1、安裝gitlab:

GitLab是一個(gè)數(shù)據(jù)庫(kù)支持的開(kāi)源web應(yīng)用,可通過(guò)Web界面進(jìn)行訪問(wèn)公開(kāi)的或者私人項(xiàng)目。它是一個(gè)擁有Github類似的功能、實(shí)現(xiàn)了自托管的Git項(xiàng)目倉(cāng)庫(kù)。所以相比于其他git服務(wù)器,它的安裝過(guò)程涉及到更多的東西。幸運(yùn)的是,這個(gè)過(guò)程有非常詳細(xì)的文檔說(shuō)明和支持,而且在Bitnami(一個(gè)產(chǎn)生的開(kāi)源軟件的項(xiàng)目)可以獲取一鍵安裝包:

在Ubuntu服務(wù)器端打開(kāi)Bitnami,由于我的是64位操作系統(tǒng),選擇第一個(gè)進(jìn)行下載。(本教程基于gitlab 8.7.4-0)完成之后在終端下用cd命令進(jìn)入其所在目錄:

$ sudo chmod +x bitnami-gitlab-8.7.3-0-linux-installer.run --修改權(quán)限,文件名以自己為準(zhǔn)

$ sudo ./bitnami-gitlab-7.4.3-0-linux-installer.run --以管理員權(quán)限執(zhí)行安裝

接下來(lái)將出現(xiàn)如下安裝界面(此前服務(wù)器需要安裝SSH server),整個(gè)過(guò)程基本點(diǎn)擊Next就可以完成安裝:

注意這里的小叉代表勾選

設(shè)置你自己的郵箱、登錄名、密碼,這將在之后的網(wǎng)頁(yè)端作為管理員賬戶登錄信息

如果你的默認(rèn)端口80, 3306有占用,則需要修改或者解除占用。我的80端口由于之前安裝過(guò)Apache而被占用,所以我將之卸載。(此一鍵安裝包已經(jīng)內(nèi)置了Apache2)

這里提供一條卸載命令:$ sudo apt-get autoremove [application or package-name]

用戶在網(wǎng)頁(yè)端注冊(cè)的時(shí)候需要對(duì)所填郵箱進(jìn)行驗(yàn)證,所以這里的mail support建議勾選上,郵箱驗(yàn)證沒(méi)通過(guò)是無(wú)法登錄gitlab的。當(dāng)然如果你在此并沒(méi)有勾選或者注冊(cè)后沒(méi)有收到驗(yàn)證郵件也不要緊,在管理員登錄網(wǎng)頁(yè)端后,在全局設(shè)置界面可以方便的通過(guò)所有待驗(yàn)證用戶。接下來(lái)一路Next直至Finish,Gitlab的安裝到此完成,之后會(huì)有幫助窗口出現(xiàn),有興趣可以看看。

注意,在安裝的目錄下有個(gè)文件:ctlscript.sh,通過(guò)./ctlscript.sh可以關(guān)閉和啟動(dòng)gitlab服務(wù)器:(具體見(jiàn)README文件)

$ sudo /opt/gitlab-8.7.3-0/ctlscript.sh [start/stop/restart]

gitlab在安裝目錄下有一個(gè)GUI管理控制臺(tái),啟動(dòng)命令:

$ sudo /opt/gitlab-8.7.3-0/manager-linux-x64.run

2、用戶管理:

管理員登錄:

接下來(lái)咱們打開(kāi)Ubuntu的瀏覽器,在地址欄輸入localhost/將打開(kāi)gitlab登錄頁(yè)面,輸入注冊(cè)時(shí)設(shè)置的郵箱(或者登錄名)以及密碼,進(jìn)入gitlab。

注意:這里的地址也可以輸入安裝過(guò)程中提示的本地IP,我的是127.0.1.1;如果在局域網(wǎng)內(nèi)其他電腦上,則在地址欄輸入服務(wù)器IP。(Ubuntu命令行下ifconfig可以得到本地IP)

新用戶注冊(cè):

在客戶端電腦打開(kāi)瀏覽器,在地址欄輸入局域網(wǎng)服務(wù)器IP進(jìn)入登錄/注冊(cè)頁(yè)面:









郵箱驗(yàn)證(如果沒(méi)收到郵件繼續(xù)參照下方操作)

回到剛剛登錄的服務(wù)器端的瀏覽器管理員頁(yè)面,點(diǎn)擊右上角的全局設(shè)置(下圖中的扳手)

點(diǎn)擊左側(cè)面板的Users

剛剛在PC端注冊(cè)的新用戶developer01出現(xiàn)在這里,點(diǎn)擊用戶名:

就能在接下來(lái)的頁(yè)面對(duì)其手動(dòng)進(jìn)行驗(yàn)證,點(diǎn)擊Confirm user,此驗(yàn)證欄將消失,代表新用戶developer01已經(jīng)通過(guò)驗(yàn)證,注冊(cè)成功。此時(shí)的PC端再次登錄就可以進(jìn)入Gitlab啦!

二、測(cè)試用例

經(jīng)過(guò)以上的操作,希望大家對(duì)Gitlab頁(yè)面布局有一定的熟悉,接下來(lái)我將講解在各種環(huán)境下如何部署項(xiàng)目代碼倉(cāng)庫(kù)并進(jìn)行基本操作。

Gitlab的管理員頁(yè)面中,在左側(cè)的面板下可以非常便捷地創(chuàng)建用戶、用戶組、新工程,并進(jìn)行管理,還集成了各類事件消息。在為新工程添加用戶時(shí)可以設(shè)置其權(quán)限,添加后同樣可以在左側(cè)面板的Members選項(xiàng)面對(duì)其進(jìn)行管理。

比如我在管理員端創(chuàng)建了mobiledevelopers用戶組,并在該組下創(chuàng)建了新工程mobile_dev,并添加了用戶developer01,而此時(shí)的developer01并沒(méi)有辦法對(duì)此項(xiàng)目倉(cāng)庫(kù)進(jìn)行Git操作,提示需要添加SSH秘鑰:

參考前文生成的我們需要的ssh公鑰,其儲(chǔ)存路徑為~/.ssh/id_rsa.pub(用戶主目錄下.ssh/文件夾的id_rsa.pub),找到并用任意文本編輯器(推薦Notepad++)打開(kāi),復(fù)制其全部?jī)?nèi)容(Ctrl+A、Ctrl+C),返回瀏覽器頁(yè)面點(diǎn)擊add an SSH key :

將公鑰粘貼(Ctrl+V)至key欄,下邊的Title在點(diǎn)擊時(shí)將自動(dòng)填充,最后Add key添加成功,到此用戶developer01對(duì)此項(xiàng)目倉(cāng)庫(kù)將具備管理員賦予的權(quán)限。

Web頁(yè)面:

進(jìn)入項(xiàng)目,點(diǎn)擊左側(cè)面板Files選項(xiàng),可進(jìn)行文件的編輯、上傳,文件夾的上傳,創(chuàng)建新分支和標(biāo)簽(管理員)等行為。

例:創(chuàng)建一個(gè)新文本文件filetest01:

提交后叫在左側(cè)的Merge Requests將出現(xiàn)此合并請(qǐng)求。

命令行:

新建Git項(xiàng)目

Git global setup(Git全局設(shè)置):

$ git config --global user.name "name"

$ git config --global user.email "name@email.com"

Create Repository(創(chuàng)建倉(cāng)庫(kù))

$ mkdir common-util

$ cd common-util

$ git init

添加并提交文件:

$ touch README

$ git add README

$ git commit -m 'first commit'

$ git remote add origin git@server:devteam/common-util.git

$ git push -u origin master

添加已存在Git項(xiàng)目:

$ cd existing_git_repo?

$ git remote add origin?git@server:devteam/common-util.git

$ git push -u origin master

到此可正常進(jìn)行g(shù)it操作,具體請(qǐng)參看第一部分。

客戶端:

本教程介紹的客戶端均為Windows環(huán)境下。

SourceTree

使用SourceTree軟件進(jìn)行代碼開(kāi)發(fā)的管理,客戶端免費(fèi)支持windows和蘋(píng)果系統(tǒng),下載地址:http://www.sourcetreeapp.com/。

安裝過(guò)程中需要認(rèn)證用戶,在FQ環(huán)境下訪問(wèn)Atlassian注冊(cè)賬戶后繼續(xù)安裝,之后會(huì)下載一些依賴,完成后可選擇跳過(guò)初始設(shè)置。

這里對(duì)SSH key登錄進(jìn)行講解:

1、生成SSH keys:點(diǎn)擊工具--創(chuàng)建SSH秘鑰--點(diǎn)擊Generate--點(diǎn)擊Save public key和save private key,保存好公鑰和私鑰

2、Gitlab 配置SSH keys:瀏覽器打開(kāi)Gitlab登錄自己的賬戶,按前面提到的方法添加公鑰SSH keys。

3、客戶端導(dǎo)入私鑰:回到source tree的工具,點(diǎn)擊“選項(xiàng)”,選擇上次生成的SSH秘鑰,點(diǎn)擊“確定”即可添加成功。

4、SSH助手配置:點(diǎn)擊“啟動(dòng)SSH助手”,點(diǎn)擊“Add Key”,選擇之前導(dǎo)出的私鑰,添加成功后,查看公鑰跟Gitlab網(wǎng)頁(yè)添加的相同,則說(shuō)明配置成功。

Eclipse中使用git--Egit:

EGit是Eclipse上的Git插件,官方內(nèi)容參看:http://wiki.eclipse.org/EGit

EGIT使用教程:http://my.oschina.net/doloop/blog/221800

Git Bash+EGit在項(xiàng)目中配合使用最常用方法:

http://blog.csdn.net/hongshan50/article/details/22582049

Visual Studio 中使用git:

官方教程:https://www.visualstudio.com/en-us/get-started/code/gitquickstart

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、Git的簡(jiǎn)介 與SVN不同的是GIT 是一個(gè)分布式版本控制系統(tǒng),每個(gè)人電腦都有完整的版本庫(kù),假如有人電腦壞了,...
    艾胖胖胖閱讀 566評(píng)論 0 5
  • Git 是一個(gè)以命令行為主的免費(fèi)開(kāi)源的分布式版本控制系統(tǒng),用于敏捷高效的處理任何或大或小的項(xiàng)目。是Linus To...
    sunnyaxin閱讀 942評(píng)論 7 6
  • 人都有羞愧感,為維護(hù)自己的形象,樹(shù)立權(quán)威,面子就是一個(gè)無(wú)形的包袱壓得喘不來(lái)氣。有些人恰恰利用了這點(diǎn)故意打擊,挑些問(wèn)...
    卡布希諾閱讀 223評(píng)論 0 0
  • 保持開(kāi)放的心態(tài),去嘗試,似乎也挺好。 從開(kāi)始見(jiàn)面到二次見(jiàn)面,你已經(jīng)開(kāi)始行動(dòng),因?yàn)槟阆M叱鋈ァ?不知道是性格原因還...
    小確幸里的小幸福閱讀 271評(píng)論 0 0
  • 時(shí)隔多年,我們都25歲了,十八歲相識(shí),轟轟烈烈三年愛(ài)情長(zhǎng)跑終究抵不過(guò)距離倆字!總是在夢(mèng)里見(jiàn)到你,你還是穿的那身藍(lán)...
    小爺二天閱讀 194評(píng)論 0 0

友情鏈接更多精彩內(nèi)容