Git下载地址:https://git-scm.com/downloads
Git版本:2.26.2
安装步骤
1.点击Next
2.选择一个常用的安装软件路径(我一般不会默认在C盘),然后点击Next。
3.选择组件,如果不清楚都是做什么的,可以全部勾选。
4.Next.
5.默认选择Vim编辑器。
6.选择默认推荐的选项,点击Next。
1)Use Git from Git Bash only (只在Git Bash 中使用Git命令行工具)
2)Git from the command line and also from 3rd-party software(不仅可以Git Bash 中使用Git命令,也可以在windows命令提示符、Windows PowerShell和任何配置了Git路径的第三方软件使用,因为只在PATH中添加最小的Git包,避免使用可选的UNIX工具扰乱环境。)
3)Use Git and Optional Unix tools from the Command Prompt(Git和可选的UNIX工具包都添加到PATH中,注意的是UNIX命令会覆盖windows命令行提示符,比如“find”和“sort”,只有理解其含义才使用这个选项。)
7.选择HTTPS传输后端,默认选择Use the OpenSSL library即可。
8.配置行结束转换(Windows推荐选择第一个选项,UNIX系统推荐选择第二个选项)
9. 配置终端模拟器以与 Git Bash 一起使用(默认选择第一个选项)
10.配置额外的选项,点击install安装(默认选择第一个、第二个选项)
11.安装完成。
安装过程中遇到的问题:
1.An error occurred while trying to copy a file: The source file is corrupted.
解决方案:应该是下载的安装包有问题,我重新下载之后就可以继续安装了!
Git配置
1.鼠标右键,选择Git Bash Here.
git --version #查看git版本号
2…配置sshkey,用于客户端与github的身份验证
第一步:生成sshkey
ssh-keygen -t rsa -C “注册Git账号的邮件地址”
ssh-keygen -t rsa -C “XXXXXXXX@qq.com”
Enter file in which to save the key (/c/Users/XXXXX/.ssh/id_rsa): test #输入生成秘钥的文件名
Enter passphrase (empty for no passphrase): #输入密码,此密码须记住
Enter same passphrase again: #确认密码
此时当前路径下会多出两个文件test和test.pub
test是私钥
test.pub 是公钥
3.仓库设置
初始化本地仓库
git init
Initialized empty Git repository in F:/work/Git/.git/
初始化成功之后,你的文件夹里就会多出.git的隐藏文件。
在ubuntu下切换到git账号,创建保存公钥的文件夹
[root@admin ~]# vim /etc/ssh/sshd_config #root用户下,编辑/etc/ssh/sshd_config文件
#按如下设置这三个配置,如果注释掉了,则去掉前面的#号
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
#保存并重启 sshd 服务:
sudo service sshd restart #重启sshd服务
##由 AuthorizedKeysFile 得知公钥的存放路径是 .ssh/authorized_keys,实际上是
##$Home/.ssh/authorized_keys,由于管理 Git 服务的用户是 git,所以实际存放公钥的路径是
##/home/git/.ssh/authorized_keys
##在 /home/git/ 下创建目录 .ssh
[root@admin ~]# cd /home/git
[root@admin git]# pwd
/home/git
[root@admin git]# mkdir .ssh
然后把 .ssh 文件夹的 owner 修改为 git
[root@admin git]# chown -R git:git .ssh
[root@admin git]# ll -a | grep .ssh
drwxr-xr-x 2 git git 4096 Jan 13 14:54 .ssh
客户端导入公钥
回到客户端Git Bash 下,导入文件:
$ ssh git@服务器公网IP地址 'cat >> .ssh/authorized_keys' < 对应test公钥文件路径/test.pub
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes #输入yes即可
git@139.159.210.229's password: #输入之前设置的密码
回到服务器端,查看 .ssh 下是否存在 authorized_keys 文件:
[root@admin ~]# cd /home/git/.ssh/
[root@admin .ssh]# ll
total 4
-rw-rw-r-- 1 git git 398 Jan 13 15:03 authorized_keys
[root@admin .ssh]# cat authorized_keys #查看客户端生成的公钥
**重要:**
**修改 .ssh 目录的权限为 700**
**修改 .ssh/authorized_keys 文件的权限为 600**
[root@admin git]# chmod 700 .ssh
[root@admin git]# cd .ssh/
[root@admin .ssh]# chmod 600 authorized_keys
客户端clone项目
$ git clone git@服务器公网IP地址:/home/git/repository/gittest.git #IP地址后面跟冒号,冒号后面是刚才初始化的项目文件夹的绝对路径
禁用git用户ssh登陆服务器
[root@admin]# sudo vi /etc/passwd #编辑/etc/passwd文件
#找到:
git:x:1001:1001::/home/git:/bin/bash
#修改为:
git:x:1001:1001::/home/git:/bin/git-shell
此时 git 用户可以正常通过 ssh 使用 git,但无法通过 ssh 登录系统。