粘贴源
1.-> .-> 步骤指示符
2.-> []() 网址指示符
3.->
指针
多个服务器免密登录/多代码托管平台
本地连接多代码托管平台
- ssh-keygen
此外 这个路径下也存储公钥和私钥 使用本ssh-keygen
命令时 第一个输入是输入名称用来新建个sshkey
如果直接回车会提示是否覆盖原钥匙 id_rsa.pub/id_rsa
输入n用来拒绝覆盖 此后git什么都不会做
name.pub
上传 代码托管平台
如果你的钥匙已经上传到一个网站github/gitee
那么这个连接就已经被建立 这个公钥无法被另外一个网站作为钥匙
需要重新生成 ssh-keygen
输入名称 一路回车 将cat name2.pub
来与另外一个网站连接
- 配置私钥对接远程仓库
需要为这个网站指定私钥(配置到本地) 你需要为git指明私钥来对接网站公钥
免密登录
因为代码托管平台是通过ssh连接 连接过去的 一个公钥只能对应一个代码托管平台
但是id_pub
可以针对多个服务器来进行免密登录 在这个过程中 只是用来进行身份验证 并不建立一个完全的连接
多人使用开发项目
每个分支都用来完成单独的不相互联系的功能
分支可以合并 项目主人+成员 项目主人用来更新项目需求书 提交
成员来获取最新信息
成员
1.->git clone <url>
2.->cd <主目录/>
3.->git branch 查看是否为主分支/需要更新的分支
4.->git checkout <branch_name> 切换到分支
5.->git pull origin <branch_name> 获取最新的代码
修改之后
1.->git add ./git add <file1> <file2> 将自己的代码存入暂存区
2.->git commit -m "提交信息" 这是提交给本地仓库
3.->git pull origin<branch_name> 获取最新版本 如果少这一步但是分支更新 会发生代码冲突
4.->git push origin <branch_name> 推送提交
完成项目需求书
Git仓库迁移
生成二次验证密钥
# 访问令牌
1.->原有托管平台
2.->访问令牌
3.->名称与时间
4.->选择权限 # 可读 可写 Api等
5.->进入仓库
6.->复制https克隆连接
进入新的代码托管平台
import
Private
https克隆链接
二次验证
Login
1.->本人用户名
2.->生成的访问令牌
Your old project requires credentials for read-only access. We will only temporarily store them for importing. When importing from Azure DevOps, please use a personal access token with read access to the repository being imported.
个人使用git来维护项目
正确流程
# 先创建网络仓库
acgit->您的项目->新建项目->
创建空白项目->项目名称(私密并取消使用自述性文件)->
进入文件夹->右键git bash here->
git init(创建一个仓库)->
输入全局设置(gitconfig(去除--global) 名称,邮箱)(此处并没有反馈执行完成)->
git status(检查本地文件那些没有进入到仓库)->git add . (添加进入仓库注意这里有个空格)->
git commit -m "这次操作的记录名"(用来提交进入日志(提交进仓库 需要进行日志))->
git remote add origin git@git.acwing.com:Gy-Sherlock/void.git(这是一个云端仓库的地址)->
git push -u origin master//这是第一次推送仓库
更新已有的仓库(云端和本地已经对接)
git status -> git add .->git commit -m "data"->git push
Git实例
后续更新
git status
git add .
git commit -m "contentBase"
git push
不同电脑同步
获取ssh链接
git clone 链接
Git的基本使用
git基本知识/使用方法
git init
初始化项目文件夹以供添加新项目
git status
看看有哪些文件没有加入仓库
git add .
添加所有文件到仓库
git commit -m "Name"
保存并收录文件到仓库
至此本地仓库创建完成
Ac git 全局设置去除global
推送现有仓库
git remote add orign
链接到云仓库地址
git push -u orign master
推送文件
云端送到本地
克隆_>使用ssh克隆
_>获得网址
文件夹内部->右键->git bash here
->git clone
网址
再转入
git bash here
> git stutas
> git add .
> git commit -m "Name 2 "
>git push
;
更新文件
git pull
/拉取文件
更新文件操作组合拳
git status > git add . >git commit -m "Name "
> git push
回滚
历史->浏览文件
git log # 查看提交历史 复制回滚的哈希值 前六个就可以
git reset -hard commit_hash # hard会取消回滚历史之后的所有版本 完全覆盖 此后push之后 云端仓库也会被覆盖
- 需要注意的是:此后将这个回滚推送到云端仓库
git push
是将本次状态同步到远程仓库 本地仓库中覆盖的 - 历史版本是没有办法再回来的
分支
-
创建
git branch (name)
-
切换
git checkout (name)
/ 创建并切换git chekout -b name
-
合并
git merge
-
查看所有分支
git branch
-
删除
git branch -d (name)
-
解决合并冲突
例子-菜鸟教程
远程仓库对接本地仓库详解
-
添加链接
git remote add origin <Gitee仓库URL>
-
测试链接
git push -u origin <branch_name>/master/main
推送到云端的空白仓库 -
粘贴
shift
+insert
键 在git里面粘贴 -
查看所有链接
git remote -v
-
取消链接
git remote remove origin
-
添加新的仓库覆盖
git remote add origin <新的远程仓库URL>
-
添加新的托管仓库不覆盖
git remote add github <新的远程仓库URL>
-
添加新的之后 同步远端的
git pull origin <branch_name>
git push -u origin <branch_name> //origin是仓库名称
Github托管
GitClone是开发人员 需要同步项目使用的工具
下载别人代码下载Zip就可以了 但是 没有办法查看版本
上传公钥
cd ~/.ssh->cat id_rsa.pub->ctrl+ins复制->
# github菜单选项点击左侧菜单中的SSH和GPG密钥
点击“New SSH Key”按钮。
在“Title”字段中,输入一个描述该密钥的名称(例如,你的计算机名称)。
在“Key”字段中,粘贴你复制的SSH公钥。
点击“Add SSH Key”按钮。
多对钥匙/多个仓库
- 指定私钥给网站公钥
# 需要在.git下在你的本地项目目录中打开 .git 目录,找到 config 文件(如果不存在则创建一个),并在文件中添加以下内容:
[core]
sshCommand = ssh -i /path/to/private_key
将 /path/to/private_key 替换为你的私钥文件的实际路径。
Tips:
- git对于空文件夹不会记录 需要有文件
- 需要在代码托管平台创建空白的项目 不要选中初始化git项目
- Git仓库可以通过二次验证的密钥 来实现某个仓库的特定访问 包含只读 可读 可写多个权限
统计代码量
在(自己创建的 排除idea自己生成的)总的文件夹(backend)
下打开gitbash
find . -name '*.java'
查找以java文件结尾的文件
find . -name '*.java' | xargs cat
把所有文件内容展示出来
find . -name '*.java' | xargs cat | wc -l
再写个管道统计行数
知识点
ssh公钥私钥
公钥 一个单项盒子 只能装不能开
私钥 一把钥匙 开启公钥所著的盒子
(非对称解密:解决对称加密的密钥存储安全问题)
对称加密是 两个人各有一把钥匙和锁
authorized_keys:
保存已授权的客户端公钥(server端)
known_hosts:
保存已认证的远程主机ID(client端)
C发送登录请求(也有pub) S接受请求(在author中比对pub) 成功则生成一个随机字符串发送给C(并加密字符串)
C接收后使用(私钥)解密 获取信息使用和S同样的机密算法 得到的加密字符串发送给S S会比较两个机密字符串是否
相同 相同则验证成功
You don't have any public SSH keys in your GitHub account. You can add a new public key,
or try cloning this repository via HTTPS.
sshkey 用来验证登录远程主机的是时候的钥匙 可以用来验证免密登录
ssh连接的验证方式
SSH协议的工作原理基于公钥加密算法。当你在GitHub上将SSH公钥添加到你的帐户后,GitHub服务器将保存你的公钥,
并在你连接到服务器时使用该公钥进行身份验证。当你连接到GitHub服务器时,
服务器会向你的SSH客户端发送一个随机的字符串,称为“挑战”。
你的SSH客户端会使用你的私钥对这个挑战进行加密,并将结果发送回服务器。
服务器会将你的公钥用于解密你发送的响应。
如果解密的结果与服务器发送的挑战匹配,
则说明你的身份已被验证,并且服务器允许你访问存储库。
这种方式的优点在于,私钥只存储在你的本地计算机上,不会被传输到GitHub服务器,
因此私钥非常安全。只有在使用SSH协议连接到GitHub服务器时,才会使用私钥进行加密和解密,
因此私钥不会被泄露给任何第三方。此外,由于公钥加密算法非常安全,
因此使用SSH协议可以提供比传统的用户名和密码身份验证更高的安全性。
公钥的具体实现
生成公钥私钥
git config --global user.name/email 用来表示仓库提交者
ssh-keygen -t rsa -C '邮箱地址'
ssh-keygen//直接生成 如果默认有全局用户名和邮箱
测试连接(已经配置过ssh公钥)
git -T git@github.com
多个托管平台的账户
并在每个账户之间进行切换,你可以通过配置别名和 SSH 主机别名来实现。
# config下配置别名
Host github-account1
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_account1//这个是私钥 为git指明用哪个钥匙登录
# Git Account 2
Host github-account2
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_account2
ssh/konwn_host+config
ssh
方式连接到一个远程主机 known_hosts
文件是在你第一次连接到一个新的 SSH
主机时由 SSH 客户端自动创建的。当你连接到一个 SSH 主机时,SSH 客户端会将该主机的
公钥存储到 known_hosts
文件中
config
这个文件是用来别名登陆的
ssh 别名
通常再配置别名时 通常使用ssh-copy-id 别名
来实现免密登录中公钥的自动上传
推荐把全片内容看完 把代码撸一撸在开始往下