Git+SSH

Git

1、版本控制

SVN 集中式的版本控制系统,版本库集中放在中央服务器,工作的时候需要联网

Git是分布式的版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库。工作的时候不需要联网

2、命令

# 查看系统config
git config --system --list

# 查看当前用户(global)配置
git config --global --list

# 编辑配置文件
git config --global -e

git config --global user.name "realguo"            # 配置用户名
git config --global user.email 1101036063@qq.com   # 配置邮箱

3、基本理论 核心

image-20210326121914086

working directory      # 工作目录       平时存放项目代码的地方
stage(index)           # 暂存区         临时存放改动,本质是一个文件,保存即将提交的文件列表信息
repository(directory)  # 资源库         仓库 保存所有提交过的版本的数据,head执行最新存放入库的版本
remote directory       # 远程git长裤    远程仓库

image-20210326122733676

4、本地仓库搭建

# 方法一
git init    # 初始化

# 方法二 克隆一个项目到本地
git clone [url]

# 方法三:拉取指定分支
git clone -b 分支名 [url]

5、文件操作

文件的四种状态

# 未跟踪:在工作目录中,但是没有加入git库中         
# git add 状态变为 staged
untracked  

# 未修改:在git库中,工作目录中的内容和git库中的完全一样 
# 被修改  变为modified
# git rm 从git库中删除,变为untracked
unmodify  

# 修改了:在git库中,工作目录中的内容和git库中的不一样
# git checkout   状态变为unmodify    即还原
# git add         状态变为 staged
modified

# 暂存状态
# git commit 将修改同步到库中,之后文件变为unmodify
# git reset head filename  取消暂存,文件变为modified
staged

基本操作

# 查看文件状态
git status 

# 添加所有文件到暂存区
git add .

# 提交到本地仓库
git commit -m "a new test file"

.gitignore文件里面记录不需要进行版本控制的文件

*.txt        # 忽略所有.txt结尾的文件
!lib.txt     # 但 lib.txt除外
/temp        # 进忽略项目根目录下所有文件,但temp除外
build/       # 忽略build目录下所有文件
doc/*.txt    # 忽略dco目录下所有.txt结尾的文件

6、使用码云

6.1 ssh设置

设置本地绑定SSH公钥,实现免密码登录!

# 进入用户目录下 .ssh
ssh-keygen -t rsa        # 生成公钥
# 将公钥放在码云上

在码云上新建仓库

# 公开仓库的话,要选择开源许可证 GPL APACHE

# 许可证:
1、开源是否可以随意转载
2、开源但是不能商业圣咏
3、不能转载
4.....

6.2 SSH原理

1、SSH一种网络协议,用于加密登录

2、目前已经称为linux系统的标准配置

1、SSH登录原理

口令登录

img

存在的问题

# 中间人攻击,伪造公钥
1、如果有人拦截登录请求,冒充远程主机,将伪造的公钥发给用户,那么用户很难辨别真伪
2、不像https,SSH协议的公钥没有证书中心(CA)

公钥登录

1、本地生成一对密钥,并把公钥放到需要访问的服务器上。
2、如果需要连接到SSH服务器上,客户端软件就会向服务器发送请求,请求用本地的密钥进行安全验证
3、服务器收到请求后,先在该服务器上的主目录下寻找客户端的公钥,然后把它和客户端发来的公钥进行比较。
4、如果一致,服务器就用这个公钥加密“质询”(challenge)并把它发送给客户端软件
5、客户端本地接收到“质询”之后,就可用本地的私钥解密再把它发给服务器,即建立连接。

7、IDEA中集成git

一般用法

1、新建仓库

2、git pull

3、然后把内容复制到新建的项目里面

本地关联远程仓库

# 本地
git init
git add .
git commit -m "init"

git remote add origin 远程仓库地址
git pull --rebase origin master
git push

8、分支

git branch       # 查看分支
git branch -r    # 查看远程分支
git branch dev   # 新建分支

git checkout -b [branch] # 新建分支 并切换分支
git checkout [branch]    # 切换分支

git merge [branch]       # 合并指定分支当当前分支
git branch -d [branch]   # 删除分支
# 删除远程分支
git push origin --delete [branch]
git branch -dr [remote/branch]

9、push到指定分支

# 如果你本地的分支名称和远程名称相同,则使用以下命令:
git push origin branchName

# 如果本地的分支跟远程的分支不一样,则指定本地和远程的分支的名称:
git push origin localBranchName:remoteBranchName

10、版本回退和变基

git reset --hard 版本号
git reset --soft 版本号    返回指定版本,但是保留代码

# 查看版本号
git log

# 强制让远程仓库与本地同步
# 注意分支名不要搞错,谨慎对待远程master分支
git push origin 本地分支名:远程分支名 --force

# 合并commit
git rebase -i 版本号

# 添加源
git remote add origin ssh地址

在这里插入图片描述

不错参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值