一.关于ssh
Secure Shell(SSH) 是一个允许两台电脑之间通过安全的连接进行数据交换的网络协议。加密保证了数据的保密性和完整性。SSH采用公钥加密技术来验证远程主机,以及(必要时)允许远程主机验证用户。
使用SSH key的步骤:
在客户端生成SSH key(密钥对:公钥和私钥)
在服务端的配置文件中加入你的公钥。(比如我们需要再GitHub中粘贴你的公钥)
1.检测本地有没有配置过ssh
Linux/Mac 系统 在~/.ssh下,win系统在/c/Documents and Settings/username/.ssh下,都是隐藏文件,相信你们有办法查看的。
或者
cd ~./ssh看能不能进入这个目录
2.生成本机ssh
随便找个文件夹,git bash here
ssh-keygen -t rsa -C "your_email@example.com" -b 4096
后面的这个-b 4096可以不用写,应该是出于安全性的设置
输入命令后会提示要不要设置口令,暂时一路回车不配置那么多。
3.在github中加入终端生成的公钥
创建完成之后我们发现在.ssh文件中多了两个文件,这两个文件就是ssh的登录密钥,其中id_rsa表示本地的私有密钥,而id_rsa.pub表示公有密钥。
这里暂时理解,公钥相当于一把锁,而私钥就是开锁的钥匙。一般来说别人可以用你的公钥来加密,这样就只有你自己能解密看到了。所以公钥可以向外公开,私钥要自己保护好。
4.验证是否添加成功
SSH key 添加成功之后,输入ssh -T git@github.com进行测试,如果出现hi.......说明成功。
二.git常用命令
git config --list //查看所有配置项,--list要连着写。
git config --global user.name //配置姓名
git config --global user.email //配置邮箱
git add 文件名 // 添加文件到暂存区
git add . // 添加所有文件的到暂存区
git commit -m '注释' // 把暂存区内容提交到历史区
git commit -am // 把已经跟踪过的文件提交到暂存区和历史区,有新文件的时候不用
git status //查看当前状态
git diff // 查看工作区和暂存区的区别
git diff --cached //查看暂存区和历史区的区别
git diff HEAD //查看工作区与上一个版本的不同(更改文件后不提交到历史区可用该命令查看)
git rm --cached 文件名// 工作区修改后已经提交到暂区,把提交的删除
git checkout 文件名 //后悔工作区的修改,还没有提交到暂存区,取回暂存区的内容覆盖
git reset HEAD index.html //后悔暂存区的修改,取回历史区内容
git log //查看本次版本快照之前的日志
git reflog //查看所有提交
git reset --hard head^ //回退最近版本
git reset --hard 版本号 //回退到对应版本号的版本
git branch //查看本地分支
git branch branch-name// 创建分支
git checkout -b branch-name// 创建并切换到分支
git branch -d branch-name //删除分支
git merge branch-name//快速合并分支,移动指针
git merge --no-ff -m '注释' branch-name //详细合并分支
git merge --abort //取消分支合并
远程同步
没有初始化
git remote add origin git@github.com:zhufengnodejs/gitdemo.git //增加远程连接
git push -u origin master //提交master并把本地master和远程master连接
已经初始化
git push origin master // 提交master分支
git push origin branch-name //提交其他分支
多人协作
1.
git branch -a
git checkout -b dev origin/dev
git add . git commit -m ''
git push origin dev
push失败
git pull 解决冲突 再 git add 1~~~~~~~~~~~
2.
git checkout -b dev
git branch --set-upstream dev origin/dev //指定本地dev分支与远程origin/dev分支的连接
git pull 解决冲突后 git add. git commit -m ''
git rm 文件名 //从版本库中删除
隐藏工作现场
1.
git stash
git stash list
git stash apply stash-id
gti stash drop stash-id
2.
git stash
git stash pop
gti stash list
删除文件 git rm index.html