一、安装git
1、LINUX
查看是否安装git:
$ git
The program 'git' is currently not installed. You can install it by typing:
sudo apt-get install git
Debian或Ubuntu Linux,通过一条 sudo apt-get install git 就可以直接完成Git的安装
老一点的Debian或Ubuntu Linux,写sudo apt-get install git-core
其他Linux版本,可以直接通过源码安装。先从Git官网下载源码,然后解压,依次输入:./config,make,sudo make install这几个命令安装就好了
2、Mac OS X
如果你正在使用Mac做开发,有两种安装Git的方法。
第一种是安装homebrew,然后通过homebrew安装Git,具体方法请参考homebrew的文档:http://brew.sh/。
第二种方法更简单,也是推荐的方法,就是直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了
3、Windows
从http://msysgit.github.io/下载,安装
Git->Git Bash,能弹出命令行窗口说明安装成功
最后设置,在命令行中:
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
查看 git config命令的--global参数
二、创建版本库 repository
1、选择创建目录
$ mkdir learngit
$ cd learngit
$ pwd //pwd命令用于显示当前目录
2、通过git init命令把这个目录变成Git可以管理的仓库
$git init
此目录下会出现 .git目录,如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见
3、操作
文件添加到仓库
$git add test.txt
提交所添加文件到仓库
$git commit -m "wrote a test file" //-m后面输入的是本次提交的说明
总结:
初始化一个Git仓库,使用git init命令。
添加文件到Git仓库,分两步:
第一步,使用命令git add
第二步,使用命令git commit -m,完成
三、修改文件
$ git status 命令查看结果
$ git diff 命令查看修改内容
$ git add
$ git commit -m ""
$ git log 命令查看全部修改记录 //q退出
//最近的一次是append GPL,上一次是add distributed,最早的一次是wrote a readme file
加上 --pretty=oneline
返回到以前的版本:
$ git reset --hard HEAD^ //HEAD为当前版本,上一个版本就是HEAD^,上上版本HEAD^^,上100个版本 HEAD~100
进入到未来的版本 //需要commit id 例如:3628164...
$ git reset --hard 3628164
查看所有commit id
$ git reflog
撤销修改
$ git chechout --
$ git reset HEAD file //把暂存区的修改撤销掉
删除文件
工作区:$ rm
版本库:$ git rm 再git commit
误删恢复:$ git checkout --
四、远程仓库
在.ssh文件夹中需要id_rsa和id_rsa.pub文件
如果没有:$ ssh-keygen -t rsa -C "email"
添加远程库
登录GitHub,Create a new repo,创建一个新仓库
$ git remote add origin [email protected]:michaelliao/lenrngit.git
把本地的数据推送到远程库上
$ git push -u origin master
从远程库克隆
Initialize this repository with a README
克隆本地库:
$ git clone [email protected]:michaellian/gitskills.git
$ cd gitskills //进入文件夹
$ ls //展现文件
Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快
五、分支管理
主分支:master
$ git checkeout -b
$ git branch //查看当前分支
$ git branch
$ git checkout
$ git merge
$ git branch -d
$ git log --graph //查看分支合并图
$ git merge --no--ff -m ""
$ git stash // 储藏
$ git stash list //查看储藏内容
$ git stash apply //恢复储藏,stash内容不删除
$ git stash drop //删除储藏
$ git stash pop //恢复,同时删除储藏
$ git stash apply stash@{0} //恢复指定储藏
$ git remote //查看远程库信息
$ git remote -v //查看详细信息
$ git push origin
$ git pull origin dev:dev //拉取远程资源
$ git checkout -b branch-name origin/branch-name //在本地创建和远程分支对应的分支,本地和远程分支的名称最好一致
$ git branch --set-upstream branch-name origin/branch-name //建立本地分支和远程分支的关联
六、标签
$ git tag
$ git tag //查看所有标签
$ git tag
$ git show
$ git tag -a
$ git tag -s
$ git push origin
$ git push origin --tags //推送所有标签
$ git tag -d
$ git push origin :refs/tags/
七、自定义git
$ git config --global color.ui true //让git显示颜色
$ git config --global alias.st status //status设置为st
配置文件.git/config
$ cat .git/config //查看配置文件
八、搭建git服务器
第一步:安装git
$ sudo apt-get install git
第二步:创建一个git用户,用来运行git服务
$ sudo adduser git
第三步:创建证书登录
收集所有需要登录的用户公钥,id_rsa.pub,导入到/home/git/.ssh/suthorized_keys中
第四步:初始化git仓库
选定仓库目录,假定/srv/sample.git,在/srv目录下
$ sudo git init --bare sample.git
Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git
$ sudo chown -R git:git sample.git
第五步:禁用shell登录
出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行
git:x:1001:1001:,,,:/home/git:/bin/bash 改为
git:x:1001:1001:,,,:/home/git:/user/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出
第六步:克隆远程仓库
$ git clone git@server:/srv/sample.git
要方便管理公钥,用Gitosis
要像SVN那样变态地控制权限,用Gitolite
常用命令:
vi filename进入编辑模式 wq退出编辑模式
git init
git remote add origin git@git....
git pull origin dev
git status
git add
git commit -m "写提交内容"
git push origin dev:dev//上传本地到远程
git pull origin dev:dev//下载远程到本地
git log//查看本地仓库
教程网址:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000