标签归档:git

git对于不同仓库使用不同的ssh key

配置 core.sshCommand:

从 Git 版本 2.10.0 开始, 可以通过这个配置配置全局或者个别仓库使用的key了

git config core.sshCommand "ssh -i ~/.ssh/id_rsa_example -F /dev/null"
git pull
git push

git常用命令

git branch 查看本地所有分支
git status 查看当前状态 
git commit 提交 
git branch -a 查看所有的分支
git branch -r 查看远程所有分支
git commit -am "init" 提交并且加注释 
git remote add origin git@192.168.1.119:ndshow
git push origin master 将文件给推到服务器上 
git remote show origin 显示远程库origin里的资源 
git push origin master:develop
git push origin master:hb-dev 将本地库与服务器上的库进行关联 
git checkout --track origin/dev 切换到远程dev分支
git branch -D master develop 删除本地库develop
git checkout -b dev 建立一个新的本地分支dev
git merge origin/dev 将分支dev与当前分支进行合并
git checkout dev 切换到本地dev分支
git remote show 查看远程库
git add .
git rm 文件名(包括路径) 从git中删除指定文件
git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来
git config --list 看所有用户
git ls-files 看已经被提交的
git rm [file name] 删除一个文件
git commit -a 提交当前repos的所有的改变
git add [file name] 添加一个文件到git index
git commit -v 当你用-v参数的时候可以看commit的差异
git commit -m "This is the message describing the commit" 添加commit信息
git commit -a -a是代表add,把所有的change加到git index里然后再commit
git commit -a -v 一般提交命令
git log 看你commit的日志
git diff 查看尚未暂存的更新
git rm a.a 移除文件(从暂存区和工作区中删除)
git rm --cached a.a 移除文件(只从暂存区中删除)
git commit -m "remove" 移除文件(从Git中删除)
git rm -f a.a 强行移除修改后文件(从暂存区和工作区中删除)
git diff --cached 或 $ git diff --staged 查看尚未提交的更新
git stash push 将文件给push到一个临时空间中
git stash pop 将文件从临时空间pop下来

gitolite使用

本地生成一个证书,并传到远程服务器

生成证书

cd ~/.ssh/
ssh-kengen -f shining

将证书传送到远程服务器

scp YourName.pub  YourName@HostName:YourName.pub

安装gitolite(git服务器端)

新增一个git用户,不需要密码。
登录到git用户,可以从root用户通过su切换过去。
确认 ~/.ssh/authorized_keys 不存在
将公钥放在 ~/YourName.pub
运行下面的命令:

# 获取版本库
git clone git://github.com/sitaramc/gitolite
# 创建bin目录,用于存放安装后的文件
mkdir -p ~/bin
# 将gitolite安装到bin目录
gitolite/install -to ~/bin
# 使用YourName.pub公钥初始化版本库
gitolite setup -pk YourName.pub

设置本地的.ssh/config

vim ~/.ssh/config

host githost
  user git
  hostname HostName
  port xxx 
  identityfile ~/.ssh/YourName.pub

管理项目、人员、证书

git clone githost:gitolite-admin.git
conf下是项目及人员配置
keydir下是证书

gitlab安装及使用

操作系统是ubuntu12.04,先下载gitlab deb,https://www.gitlab.com/downloads/

参考地址:https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md

apt-get install postfix
wget https://downloads-packages.s3.amazonaws.com/gitlab_6.7.2-omnibus-1.ubuntu.12.04_amd64.deb
sudo dpkg -i gitlab_6.7.2-omnibus-1.ubuntu.12.04_amd64.deb
sudo gitlab-ctl reconfigure