什么是Git

Git是一个分布式版本控制/软件配置管理软件,原来是linux内核开发者林纳斯·托瓦兹(Linus Torvalds)为了更好地管理linux内核开发而创立的。需要注意的是和GNU Interactive Tools,一个类似Norton Commander界面的文件管理器有所不同。

Git最初的开发动力来自于BitKeeper和Monotone。Git最初只是作为一个可以被其他前端比如Cogito或StGIT包装的后端而开发的。不过,后来Git内核已经成熟到可以独立地用作版本控制。很多有名的软件都使用Git来进行版本控制,其中有Linux内核、X.Org服务器和OLPC内核开发。

open-ssh

Step1.安装open-ssh:

sudo apt-get install openssh-server openssh-client

Step2.生成RSA Key

生成的公钥(id_rsa.pub)和密钥(id_rsa)在~/.ssh/目录下

ssh-keygen -t rsa

git-core(git server)

Step1.安装git-core

sudo apt-get install git-core

Step2.添加git用户

sudo adduser git

Step3.创建版本库

 su git
 mkdir /home/git/repositories
 chmod 775 /home/git/repositories

python-setuptools

Step1.安装

sudo apt-get install python-setuptools

gitosis

安装gitosis

 cd ~
 git clone https://github.com/res0nat0r/gitosis.git
 cd gitosis
 sudo python setup.py install
 sudo -H -u git gitosis-init < ~/.ssh/id_rsa.pub
 git clone git@localhost:gitosis-admin.git
 cd gitosis-admin
 vim gitosis.conf

lamp-server

安装lamp-server(linux下的apache,mysql,php软件套装,装好直接可用,非常方便)

sudo apt-get install lamp-server
sudo vim /etc/apache2/sites-available/default

gitweb

安装gitweb,装好后,可以直接通过浏览器查看git相关信息.

sudo apt-get install gitweb
cd /var/www
sudo ln -s /usr/share/giweb/* .
sudo vim /etc/gitweb.conf

=======================   使用git   ========================

1.创建一个新项目

su git
cd repositories/
git init --bare helloworld.git
cd helloworld.git
git remote add origin git@localhost:helloworld.git

2.clone 项目

git clone git@localhsot:hellowrold.git

3.新增/提交文件

cd helloworld
touch helloworld.php
git add helloworld.php
git commit -am "add a new file helloworld.php"
git push origin master

4.回退到某个版本xxversion

git reset --hard xxversion

5.放弃修改

git checkout -- xxxx.php (未add到暂存区时)
git reset HEAD xxxx.php(已add到暂存区时)

6.创建分支

git branch dev

7.切换到新分支

git checkout dev

8.修改分支/提交分支

touch dev.php
git add dev.php
git commit -am "add a new file dev.php"
git push origin dev

9.合并分支
Step1.切换到master分支

git branch master

Step2.合并dev分支的修改到master

git merge dev

10.删除分支

git branch -d dev

Post Navigation