git 中心服务搭建

中心服务方式选择

git 本身是一个分布式的版本管理系统,但如果要设置一个中心库方便很多开发者同步,或者像SVN 一样使用它,就需要搭建一个中心库。有几种方式可以选择:

ssh git用户设置

  •  ssh key证书生成
$ ssh-keygen –t rsa –C “user@host”

 将id_rsa.pub 发给git服务器管理员添加进/home/git/.ssh/authorized_keys 即可,或者直接用 ssh-copy-id 到服务器即可。

$ git clone git@IP:/srv/git/test.git

有几个注意点:

  • 使用 ssh key 登陆 git 用户时,home目录只能是git 可写的,否则当git组包含多个用户时会出现不用能ssh key 登录的问题。具体debug ssh key 登录问题,可以查看 /var/log/auth 下的日志来解决。.ssh/ 的权限是700,.ssh/authorized_keys 权限是600。
  • 最后用chsh 修改 git用户shell 为 git-shell,不让git 用户有其它多余的权限。
  • 创建仓库可以用git 组的其它用户来创建。注意使用newgrp 将创建文件夹时用户的默认组改成git, 这样整个git 组的用户都有读写权限。

一些实用的git 命令记录

git checkout --patch BRANCH FILE 
git checkout --theirs PATH/FILE
git clean -n //演习
git ls-files
git ls-files | xargs -n 1 dirname | uniq
git diff master sync --name-only
git config --global core.autocrlf true
git branch -vv
git push origin  local\_branch:remote\_branch
git init --bare

# 添加组
usermod -a -G git tagore
# 更改home 目录
usermod -d /home/git/ -m git

# 更改git 用户 shell
sudo chsh git -s $(which git-shell)
cp /usr/share/doc/git/contrib/git-shell-commands /home/git -R
# 提交分支
git push origin local\_branch:remote\_branch
# 同步远程已删分支 prune
git fetch -p

# git 重命名本地分支,并提交到远程
1.重命名 git branch -m oldBranchName newBranchName
2.删除远程分支:git push origin :oldBranchName 
3.将重命名过的分支提交:git push origin newBranchName

# 中文文件名乱码
git config –global core.quotepath false

# 打tag
git tag -a v1.4 -m 'my version 1.4'
git push --tags

# 修订历史实用命令
git commit --amend
git rebase -i
git commit --author "Tagore Wu <tagorewu@gmail.com>"

git 相关使用教程可以看这里

git 代理设置

有时候从github 上面 clone 东西很慢,这就要用上你的翻墙工具,然后设置git 的代理即可解决。

注:git 不会使用全局的代理设置: eg: http_proxy=ip:port

git config --global https.proxy https://yourproxyserverip:port
git config --global http.proxy http://yourproxyserverip:port 
git config --global core.gitproxy "git-proxy“
git config --global socks.proxy "localhost:1080“
git config --global url.https://github.com/.insteadOf git://github.com/