SSH KEY
-
以github和gitee代码托管平台为例
-
检测本地是否生成过ssh key
cd ~/.ssh && ls
如有id_rsa.pub或者类似的,则意味着之前生成过 -
生成github ssh key
$ ssh-keygen -C "keeprealtogod@gmail.com"
根据提示,还可依次设置文件名(github_id_rsa)、密码(abc123) -
生成后的github ssh key 为
$ cat ~/.ssh/github_id_rsa_pub
ssh-rsa AAAABQABAAABAQDU1/3fv6akYZTm05a5vqyG8BHQp238Iw0eStP60AY0msjETdgytngjIq2fx501bwewouGhIknc6zgasbbaOgtLJ+34EYYkt05OUjoCB9XykfDqpi1hvKFd9MGDZIh5lNw2qJMyLA4IbBD3uNDvZsACulp538ivf5urvTvR5jATaUztP2iB5RHKAeYfXbxA5+GuNU91Z8nqM0M40qPooRBLlZCX3cVRh5firMpgeUOQD3UUv/Ku/pb0YcbaZLmYDBi74gh78wWLtskjlxAUD8bl2XEiGbaE5kZycdB3+izSL0JaE4pdRTupeanebGGoAceIqzoxp1YXn86S7PyiL49j keeprealtogod@gmail.com
-
将github ssh key 放置服务端
(进入个人设置--SSH and GPG keys--New SSH key)
new ssh key button.png
(将上一步生成的ssh key添加进去)
add ssh key button.png
(创建一个仓库)
your rep.png
create_rep.png -
生成gitee ssh key
$ ssh-keygen -C "phplog@163.com"
根据提示,还可依次设置文件名(gitee_id_rsa)、密码(abc123)
后续操作,请参考上一步github的操作 -
设置配置文件:
$ vim config
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa
- 测试github ssh key和 gitee ssh key是否正常工作
$ ssh -T git@github.com
$ ssh -T git@gitee.com
全局设置
- 设置全局成员名称
$ git config --global user.name "person"
- 设置全局成员邮箱
$ git config --global user.email "person@org.com"
- 查看全局成员名称
$ git config --global user.name
- 查看全局成员邮箱
$git config --global user.email
局部设置
- 设置当前项目成员名称
$ git config user.name "joe"
- 设置当前项目成员邮箱
$ git config user.email "phplog@163.com"
- 查看当前项目成员名称
$ git config user.name
- 查看当前项目成员邮箱
$ git config user.email
创建版本库
$ cd /d && mkdir test && cd test
$ git init
添加、提交
$ git add xxx.txt
$ git commit -m "第一次提交"
文件比较
$ git diff xxx.txt
工作区(work dict)与暂存区(stage)比较
$ git diff --cached xxx.txt
暂存区(stage)与分支(master)比较
$ git diff HEAD --xxx.txt
工作区(work dict)与分支(master)比较
查看Git 当前状态
$ git status
查看commit记录
$ git log
版本退回
- 退回上一个版本:
$ git reset --hard HEAD^
- 退回指定版本:
$ git reset --hard 2e80dd05448650c1ffe47703ee7e1e980e399e3a
- 指定文件退回最近的版本
$ git reset HEAD xxx.txt
查看命令记录
$ git reflog
撤销修改
- 修改工作区文件,未
git add
,欲撤销
$ git checkout -- xxx.txt
- 修改工作区,操作过
git add
,欲撤销
$ git reset HEAD -- xxx.txt
$ git checkout -- xxx.txt
版本库中删除文件xxx.txt
$ git rm xxx.txt
$ git commit -m "delete xxx.txt"
本地 → 远程仓库
- 添加一个新的远程仓库test_git
$ git remote add test_git git@github.com:liudehua/test_git.git
- 列出当前所有远程仓库
$ git remote
- 列出当前所有远程仓库(包含详细信息)
$ git remote -v
- 删除一个远程仓库test
$ git remote remove test
- 将本地仓库master分支 同步到远程仓库test_git
$git push test_git master
远程仓库 → 本地
- 从远程仓库克隆到本地
$ git clone git@github.com:liudehua/test_git
分支
- 查看当前库所有分支
$ git branch
- 在当前分支HEAD创建子分支newNode
$ git branch newNode
- 切换到分支master
$ git checkout master
- 创建分支newNode && 切换到newNode
$ git checkout -b newNode
- 合并newNode分支到当前分支master
$ git merge newNode
- 删除分支newNode
$ git branch -d newNode
- 查看git图形日志
$ git log --graph
网友评论