ubuntu 下的GIT安裝及使用
#安裝ssh
apt-get install ssh
#添加eword帳號(hào)
adduser eword
#添加git帳號(hào)
adduser git
#調(diào)整sudoers文件編輯權(quán)限
chmod 777 /etc/sudoers#在原有的下面添加root下面一句root ALL=(ALL:ALL) ALL#以下為新增,允許eword進(jìn)行sudo操作eword ALL=(ALL:ALL) ALL#改回權(quán)限chmod 440 /etc/sudoers.安裝git
apt-get install git-core
#切換到git帳號(hào)
#在home/git下創(chuàng)建prj目錄
mkdir prj
#初始化prj1
git init -bare prj1
#重啟
reboot
================
#客戶端提交
#創(chuàng)建項(xiàng)目目錄
mkdir prj1
#進(jìn)入項(xiàng)目目錄
cd prj1
#初始化目錄
git init
#設(shè)置遠(yuǎn)程別名
git remote add origin git@10.1.1.183:~/prj/prj1/
#添加文件
touch Readme
#緩存改動(dòng)
git add .
或
git add Readme
#提交改動(dòng)
git commit -m "init"
#上傳改動(dòng)
git push origin master
==============================
#客戶端克隆
#創(chuàng)建克隆目的項(xiàng)目目錄mkdir obj1#進(jìn)入項(xiàng)目目錄cd obj1
#克隆git clone git@10.1.1.183:~/prj/prj1/ //默認(rèn)端口SSH://可省略???git clone ssh://git@git.xxxxx.com:181/~/prj/prj1/ //帶端口的SSH登入=============================================#客戶端獲取遠(yuǎn)程更新并合并#方法一:git fetch origin master
git log -p master..origin/master
git merge origin/master#PS:git fetch:相當(dāng)于是從遠(yuǎn)程獲取最新版本到本地,不會(huì)自動(dòng)merge
#或
git fetch origin master:tmp
git diff tmp
git merge tmp#方法二
git pull origin master
#PS:git pull:相當(dāng)于是從遠(yuǎn)程獲取最新版本并merge到本地
#git fetch更安全一些,因?yàn)樵趍erge前,我們可以查看更新情況,然后再?zèng)Q定是否合并
==============================================
#查看日志信息:
git loggit log -p //詳細(xì)信息
git show “commit ID”//顯示相關(guān)commit編號(hào)的詳細(xì)內(nèi)容,可輸入前4-6個(gè)編號(hào)
git show exp//顯示分支信息
git show HEAD//顯示最近一次commit信息
git show HEAD^//查看HEAD的父母的信息
git show HEAD^^ //查看HEAD的父母的父母的信息
git show HEAD~4 //查看HEAD上溯4代的信息
git tag V3 5b888 //以后可以用V3來代替復(fù)雜的名稱(5b888…)
====================================
#檢查狀態(tài):
git status//這個(gè)命令在git commit之前有效,查看整體改動(dòng)信息可以看到提示信息“changed but not updated”,就是說git發(fā)現(xiàn)你有已經(jīng)修改了但還未git add的內(nèi)容。
#如果git提示說“Changes to be committed”,那就是表明git發(fā)現(xiàn)了你已經(jīng)git add但還未git commit的內(nèi)容。
#如果git提示說“Untracked files”,那么就是你增加了新文件或者在某個(gè)子目錄下增加了新文件。
=============================
#分支操作
#創(chuàng)建分支exp:
git branch exp
#顯示當(dāng)前分支:
git branch//標(biāo)注*為當(dāng)前所在分支
#轉(zhuǎn)移到exp分支:
git checkout exp//切換分支前需將當(dāng)前分支內(nèi)容提交。
#將某一版本創(chuàng)建分支:
git branch exp1 V3//V3為commit ID編號(hào),exp1為分支名。
#合并分支:
git merge exp //將exp分支合并到當(dāng)前分支,合并后需再次提交。
#刪除分支:
git branch -d exp//因?yàn)閑xp分支已提交,所以可安全刪除此分支。
git branch -D exp //由于分支被證明失敗,因此使用-D來放棄并刪除該分支 。
============================================
#文件比較
#檢查源碼改動(dòng):
git diff //在git add之前使用有效。
git diff --cached //在git add之后在git commit之前有效。
=========================================
#撤銷:
git reset --soft V2//commit提交了V1、V2、V3 三次版本,該命令撤銷了V3的提交日志信息,但是具體開發(fā)內(nèi)容不變。可修改后再次提交V3。
git reset --hard V2//恢復(fù)到V2版本,徹底刪除V3的所有信息,如想保留V3的信息,則不使用該命令,而是使用 git branch exp1 V2 命令創(chuàng)建分支。
==============================
#合并比較示范
#user合作開發(fā)PM的項(xiàng)目:
#克隆pm用戶的hello目錄下的項(xiàng)目到自己user的hello_temp目錄,開發(fā)成功后提交,并通知pm
git clone /home/pm/hello hello_temp
cd hello_temp
…...
git add .
git commit
#PM合并user的開發(fā)內(nèi)容:
#確信user的開發(fā)內(nèi)容正確,直接合并:
cd /home/pm/hello
git pull /home/user/hello_temp
不確信user開發(fā)內(nèi)容,檢查后合并:
git fetch /home/user/hello_temp master:exp1//提取user的開發(fā)內(nèi)容,放到PM工作目錄下的exp1分支中
git whatchanged -p master exp1//查看user改動(dòng)了哪些內(nèi)容
git checkout master//切換到主分區(qū)
git pull . exp1//檢查正確后,可以用pull 將exp1分支合并
git branch -D exp1//如果我檢查后很不滿意,就可以用-D來放棄這個(gè)分支就可以了user再次開發(fā)PM的項(xiàng)目:
git pull//在hello_temp目錄下執(zhí)行pull即可
============================================
#證書登入,免密碼
#客戶端
ssh-keygen
#復(fù)制公鑰
scp ~/.ssh/id_rsa.pub git@10.1.1.183:~/
#登入到git服務(wù)器
ssh git@10.1.1.183
#檢查服務(wù)端git的~/下.ssh文件夾是否存在,如果不存在就創(chuàng)建
mkdir .ssh
#檢查服務(wù)端git的~/.ssh下authorized_keys文件是否存在,如果不存在就創(chuàng)建
touch authorized_keys
#authorized_keys文件的權(quán)限改為600
chmod 600 authorized_keys
#復(fù)制公鑰內(nèi)容到authorized_keys并刪除id_rsa.pub 文件
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm -f id_rsa.pub
#PS:這樣git客戶端就可以使用證書進(jìn)行無密碼登入了。
=================================================
#安裝gitweb與apache2
apt-get install gitweb apache2
#配置gitweb
vim /etc/gitweb.conf
#修改gitweb.conf下的
our $projectroot = "/home/git/prj";
#訪問路徑http://10.1.1.183/gitweb/
#gitweb.cgi 腳本安裝在 /usr/lib/cgi-bin/ 中,該目錄為默認(rèn) ubuntu 上 apache2 的 cgi-bin 目錄。所以也可以用以下打開:
#http://localhost/cgi-bin/gitweb.cgi#如果以上還無法訪問可繼續(xù)進(jìn)行以下操作。
#修改apache2的配置
#apache2主配置文件路徑為/etc/apache2/apache2.conf
#apache2主目錄為/var/www/
#配置apache2的所有人apache2.conf中
User git
Group git
#如果CSS出現(xiàn)錯(cuò)誤可以進(jìn)行如下配置
cd /var/www
sudo ln -s /usr/share/gitweb/*.
#gitweb亦可以配置成虛擬主機(jī)
#配置完后可以重啟apache
sudo /etc/init.d/apache2 restart
*************************************************
*#修改gitweb上面的描述和所有者信息 *
*#描述信息可以在${GIT_DIR}/description中修改 *
*#所有者信息可以在${GIT_DIR}/config中修改 *
*[gitweb]
*owner=eword
*Url=git://git.eulei.com/RC
*************************************************

浙公網(wǎng)安備 33010602011771號(hào)