Git
安装
sudo apt-get install git //普通用户安装
apt-get install git //root权限
全局设置
git config --global user.name "passwordgloo"
git config --global user.email "passwordgloo@163.com"
初始化
mkdir repository_name //新建仓库文件夹
cd repository_name
git init //初始化,会生成git隐藏文件夹
git remote add origin git地址 //链接本地仓库到远程仓库
基本操作
git add file //添加文件到暂存区
git add . //添加当前工作区所有修改的文件到暂存区
git reset HEAD 文件名 //撤销暂存区操作
git checkout -- 文件名 //放弃工作区更改
git commit -m "commit about file" //添加评论并提交版本库
git push -u origin master //推送到远程仓库
回退版本
git log //git日志
git reflog //git简略版本日志
git show-ref //git查看ref
git reset --hard 版本号 //切换版本,comit前十位可确定版本号
git push origin HEAD --force //强制同步远程仓库
分支管理
使用新的
git switch
命令,比git checkout
更容易理解
创建分支
写法1
git branch dev //创建分支dev
git checkout dev //切换到dev分支
写法2
git checkout -b dev //创建并切换到dev分支
写法3
git switch -c dev //创建并切换到dev分支
切换分支
写法1
git checkout master //旧版本,切换到master分支
写法2
git switch master //新版本,切换到master分支
合并分支
git merge dev //合并dev分支到当前分支
git merge --no-ff dev //禁用fast forward,合并dev
git log --graph //查看分支合并图
删除分支
git branch -d dev //删除dev分支
git branch -D dev //强行删除未合并过的dev分支
分支快照
创建快照
git stash //将当前分支现场储存起来
git stash list //查看快照信息
恢复快照
git stash pop //恢复并删除快照
多人协作
git push origin <branch-name> //推送自己修改的分支
git pull //如果推送失败,试图合并冲突
git pull
提示no tracking information
,说明本地分支与远程分支未创建链接,输入git branch --set-upstream-to <branch-name> origin/<branch-name>
SSH
生成密钥
方法1
ssh-keygen -t rsa -C "xxx@xxx" //指定邮箱地址生成rsa密钥并选择保存位置
方法2
指定邮箱地址生成rsa密钥并复制到指定位置
ssh-keygen -t rsa -C "passwordgloo@163.com" -f ~/.ssh/github_id_rsa
ssh-keygen -t rsa -C "passwordgloo@163.com" -f ~/.ssh/gitee_id_rsa
添加私钥
cd ~/.ssh
ssh-add github_id_rsa
ssh-agent bash //出现Could not open a connection to your authentication agent输入
多个ssh共存
- 当前目录新建config文件(没有文件类型名),输入
# gitee
Host gitee
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa
user git
# github
Host github
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa
user git
- 执行
sudo chmod 0600 config
添加公钥
cat ~/.ssh/github_id_rsa.pub
cat ~/.ssh/gitee_id_rsa.pub
测试
ssh -T git@github.com
ssh -T git@gitee.com
GPG
创建
gpg --full-generate-key
添加公钥
gpg --list-key //列出生成的公私钥
gpg --armor --export 哈希值 //输出公钥
配置
git config --global user.signingkey 哈希值 //git设置密钥信息
git config --global commit.gpgsign true //设置全局签名验证
git commit -s '' //gpg验证的commit