服务器上的-Git-架设服务器-官网参考
对于规模比较小的团队,可以直接搭建 Git 服务器,逐个收集研发同学的证书配置进来即可。如果团队规模比较大,可以直接采用 GitLab、Drone 等现成的带有权限管理的 Git 服务。
对于 CentOS,可以直接使用 yum install 命令安装:
yum install git -y对于 Ubunt,可以使用 apt-get 命令:
apt-get install git -y安装后,可以查看版本:
$ git --version git version 1.8.3.1参数解释:
-d:指定用户的家目录 -m:如果目录不存在,则创建这个目录 -s:指定用户可以使用的命令
如果用 root 用户创建项目,在执行 push 等操作时,git 用户会碰到权限不足的问题:
remote: error: insufficient permission for adding an object to repository database ./objects remote: fatal: failed to write object error: remote unpack failed: unpack-objects abnormal exit查看项目的创建者:
[root@VM_139_74_centos git]# ll total 44 drwxr-xr-x 7 root root 4096 Sep 14 09:27 tp5.git drw------- 1 git git 583 Sep 12 13:19 xx.git解决办法:
修改服务器的项目所有者,改为 git 用户修改权限(不推荐)重新用 git 用户创建项目(需要在客户端重新关联项目)客户端重新关联项目:
git remte origin set-url URL或者先删后加:
$ git remote rm origin $ git remote add origin git@your-ip-or-host:/home/git/tp5-demo.git可以在服务器端创建空项目,然后将本地已有项目添加进来。或直接在服务器端创建项目,本地从服务器端 clone 一份。
可以用 --bare 选项运行 git init 来建立一个裸仓库,初始化不包含工作目录的仓库。
$ cd /opt/git $ mkdir project.git $ cd project.git $ git --bare initJoin,Josie 或者 Jessica 就可以把它加为远程仓库,推送一个分支,从而把第一个版本的项目文件上传到仓库里了。
Git 远程仓库的使用可以 参考这里
git remote add:添加远程仓库git fetch:从远程仓库中抓取与拉取,从远程仓库中获得数据git push origin master:推送 master 分支到远程仓库,命令格式:git push [remote-name] [branch-name]git remote show origin:查看远程仓库示例如下:
$ cd myproject $ git init $ git add . $ git commit -m 'initial commit' $ git remote add origin git@your-ip-or-host:/opt/git/project.git $ git push origin master每次添加一个新项目都需要通过 shell 登入主机并创建一个裸仓库目录。
可以修改 host 文件,以 gitserver 作为 git 用户及项目仓库所在的主机名:
$ git remote add origin git@gitserver:/opt/git/project.gitGit 客户端安装完成后,首先要配置邮箱和用户名:
配置邮箱: git config --global user.email 'xx@xx.com' 配置用户名 git config --global user.name 'myname'Git 安装完成后,自带了用于生产公私钥对的 ssh-keygen 工具。
打开 Git Bash,也就是 Git 的命令行终端,输入以下命令生成公私钥对,注意替换命令中的邮箱:
ssh-keygen -t rsa -b 4096 -C "xx@xx.com"默认存储公私钥对的路径是 C:\Users\Administrator\.ssh,终端在保存之前会提示你是否保存在它指定的默认位置,一般直接回车确认即可。最终生成两个文件:
id_rsa:私钥文件,打死都不能告诉别人id_rsa.pub:公钥文件,要想跟哪个服务器通信,就在哪个服务器上添加打开 Git GUI,依次点击菜单栏的 “Help->Show SSH Key”。正常情况下,你刚才生成的公钥会显示在这里,公钥末尾是你的邮箱。
默认存储公私钥对的路径是 C:\Users\Administrator\.ssh。
在服务器端 git 用户的家目录下的 .ssh 目录中存放 Git 服务器的相关设置,如果没有则创建这个目录: /home/git/.ssh。然后,在 .ssh 目录中创建 authorized_keys 文件,将公钥内容粘贴过来即可。如果希望添加多个用户的多个公钥,直接追加到文件中即可。
注意:这里需要注意创建的目录和文件的权限,必须保证 git 用户有足够的访问权限。
$ mkdir ~/.ssh $ chmod 700 .ssh $ cat your-pubkey.pub >> ~/.ssh/authorized_keys $ chmod 600 ~/.ssh/*当然,也可以利用 lrzsz 等工具将公钥传到服务器,然后用 cat 等命令将其追加到 authorized_keys 文件:
su git cat your-pubkey.pub >> ~/.ssh/authorized_keys打开安装的 Git 客户端,执行 Git 命令:
Administrator@PC-20180813FYYN MINGW64 /e/kika/demo $ git clone git@111.231.221.219:/home/git/tp5.git Cloning into 'tp5'... Enter passphrase for key '/c/Users/Administrator/.ssh/id_rsa': warning: You appear to have cloned an empty repository.每次都需要输入公钥的密码,如果想去掉,可以参考 这里。
转载于:https://www.cnblogs.com/kika/p/10851550.html
