git – Wasting_Misaka.Blog https://forelink.top Hso! Thu, 12 Sep 2024 16:51:46 +0000 zh-Hans hourly 1 https://wordpress.org/?v=6.7.1 忽略文件 https://forelink.top/index.php/2024/09/13/%e5%bf%bd%e7%95%a5%e6%96%87%e4%bb%b6/ https://forelink.top/index.php/2024/09/13/%e5%bf%bd%e7%95%a5%e6%96%87%e4%bb%b6/#respond Thu, 12 Sep 2024 16:51:44 +0000 https://forelink.top/?p=546 忽视项目中的 .gitignore 会留下隐患。

在.gitignore中添加配置

如果在 Git 的工作目录中添加了一些含有敏感信息的配置文件,或者是一些没有作用的日志文件(中间文件)而不想提交,就可以在 Git 的工作目录根目录下 的 .gitignore 文件中添加想要忽略掉的文件名, Git 就会忽略掉其中的文件。

示例:

#----------------#
# 忽略掉 Windows 生成的缩略图
Thumbs.db

# 忽略掉配置文件
*.ini

# 忽略掉中间文件和可执行文件
*.log
*.exe

# 忽略掉文件夹
www/logs/
#----------------#

提交 .gitignore 文件

使用指令提交 git commit -m "update .gitignore"

检查文件是否被 Git 忽略

使用 git check-ignore -v <文件路径> 命令检查是否正确忽略了文件。 如果输出了 .gitignore 中的规则路径 和所在的行号,则文件被忽略。

同时可以配合 git status 指令来检查文件是否存在 Untracked Files 的部分。

停止 Git 跟踪先前提交过的文件

在使用过程中,有时会发现不想被添加的文件已经被添加并提交。

添加到 .gitignore 文件中

将想要不再跟踪的文件或者文件夹添加到 .gitignore

# .gitignore 文件
# 会忽略 itignore 文件所在目录的
# logs文件夹
logs/

从 Git 索引中移除

想要 Git 不再跟踪这些文件,此时只是单纯添加到 .gitignore 文件中并不能让 Git 停止跟踪这些文件。需要使用 Git rm --cached 命令来从 Git 的索引中移除他们。

# 移除logs文件夹下的所有文件
git rm ——cached logs -r

提交更改

在停止跟踪文件后,提交这些更改

git commit -m "Stop tracking logs package"

推送更改

如果希望将提交推送到远程仓库 使用 git push 命令推送。

]]>
https://forelink.top/index.php/2024/09/13/%e5%bf%bd%e7%95%a5%e6%96%87%e4%bb%b6/feed/ 0
通过SSH来认证Github https://forelink.top/index.php/2024/09/11/%e9%80%9a%e8%bf%87ssh%e6%9d%a5%e8%ae%a4%e8%af%81github/ https://forelink.top/index.php/2024/09/11/%e9%80%9a%e8%bf%87ssh%e6%9d%a5%e8%ae%a4%e8%af%81github/#respond Tue, 10 Sep 2024 16:38:21 +0000 https://forelink.top/?p=528 使用linux的时候,想操作远程仓库的时候,难免会遇到认证的问题。 github在2021.8.13就停止了对远程账密认证的支持。 这里需要在本地创建一个ssh的加密。

创建秘钥对ssh-keygen

使用ssh-keygen命令创建一个ssh密钥对

ssh-keygen -t rsa -b 4096 -C "woshimiyaodui"

ssh-keygen 是生成SSH密钥对的命令,用于创建公钥和私钥。 基本语法

ssh-keygen [options]

options:
    -t 指定密钥类型
        rsa : RSA 算法,适用于大多数情况,密钥长度通常为 2048 或 4096 位。
        ecdsa:椭圆曲线算法,提供较高的安全性,密钥长度较小(256 位、384 位等)
        ed25519:EdDSA 椭圆曲线算法,性能更好且安全性更高,推荐使用。
        dsa:DSA 算法,但由于安全性不足,不推荐使用。

    -b 指定密钥长度
        用于指定密钥的长度(位数),一般配合 `-t` 参数使用。
        对于 RSA 密钥,推荐使用至少 2048 位,建议使用 4096 位。
        对于 `ed25519` 密钥,密钥长度固定,无需指定。

    -f 指定文件名
        指定生成的密钥文件的存储路径和文件名。
        默认情况下,密钥存储在 `~/.ssh/id_rsa`(私钥)和 `~/.ssh/id_rsa.pub`(公钥)

    -N 指定密钥密码
        用于为私钥设置密码保护,增加密钥的安全性。
        密钥加密时,每次使用(如登录服务器)都需要输入这个密码。如果不希望加密私钥,可以设置为空密码(即 -N "")

    -q 静默模式
        该参数使 ssh-keygen 命令在运行过程中不显示输出信息,静默生成密钥对。

    -C 添加注释
        为密钥添加注释,通常用来注明密钥的用途或对应的邮箱地址
        该注释会被包含在公钥中,方便识别密钥来源

启动 SSH 代理添加密钥

确保ssh代理正在运行,并将私钥添加到代理中

eval "$(ssh-agent -s)" # 启动 SSH 代理 
ssh-add ~/.ssh/id_rsa # 将密钥添加到代理

确认密钥已经添加

ssh-add -l # 查看密钥列表

Github添加公钥

获取公钥内容

cat ~/.ssh/id_rsa.pub

登录github-点击右上角头像-点击setting-选择 SSH and GPG Keys – 点击New SSH Key

然后在Title文本框中输入信息用以区分,将公钥内容粘贴到Key文本框中

image.png

点击 Add SSH key添加,如果Key格式没有问题,应该能将该公钥添加到github账号中。 如果出错,检查key的内容是否为 pub后缀 文件的内容,为公钥。

测试连接

使用以下命令测试 SSH 是否可以成功连接到 Github

ssh -T git@github.com

如果连接成功,能看到类似下图中的输出

image.png

删除密钥对

SSH密钥对的不常用性,容易导致生了不管的现象。 不用的SSH密钥对如果想要删除,必然要耗费使用者的一番心思。 提前思考如何删除密钥对是很有必要的

删除SSH密钥对涉及到删除本地的公钥和私钥文件,以及删除远程服务器或平台上存储的公钥。

先从本地列出密钥文件

ls ~/.ssh/

如果在ssh中加载了密钥,确保代理不再加载要删除的密钥,要从 SSH 代理中移除密钥

ssh-add -d ~/.ssh/id_rsa

然后删除掉 id_rsa 和 id_rsa.pub 文件 并删除掉 SSH 配置文件 ~/.ssh/config 中的相关配置 删除与已删除密钥对应的配置块,例如github:

Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_github

还需要从远程平台删除公钥,这一步是可选的。

DLC :使用 SSH URL 配置仓库

github SSH URL的格式通常如下

image.png

换言而之,格式通常为:

git@github.com:username/repository.git

添加远程仓库使用指令

git remote add origin [SSH URL]

# 如果配置仓库时使用了HTTPS URL,可以修改为SSH URL
git remote set-url origin [SSH URL]

# 使用以下指令检查当前远程仓库的URL
git remote -v

DLC2 :SSH 密钥对

SSH密钥对(SSH Key Pair)是用于加密通信的密钥,它们由**私钥**和**公钥**组成,并广泛应用于安全的身份验证,如通过 SSH 访问远程服务器或使用 Git 进行代码操作。SSH 密钥对的主要作用是提供**基于公钥的身份验证**,避免使用密码进行身份验证,从而提高安全性。

**公钥 (Public Key)**:

公钥是密钥对中的一部分,可以安全地共享给其他人或系统。
当你生成 SSH 密钥对后,可以将公钥上传到服务器或系统(例如 GitHub)进行验证。
公钥通过复杂的数学算法与私钥配对,但无法通过公钥反推出私钥。

**私钥 (Private Key)**:

私钥应保密存储,绝不应该与他人共享。
私钥用于加密客户端的认证请求,并通过服务器端存储的公钥进行解密和验证。
私钥通常保存在客户端设备上(例如你的电脑),并且你可以通过加密保护它,避免未经授权的访问。

SSH 密钥对的工作原理:

SSH 密钥对使用的是一种非对称加密技术。以下是基于公钥的 SSH 身份验证的工作流程:
  1. 密钥生成:客户端使用 ssh-keygen 命令生成一对 SSH 密钥(公钥和私钥)。
  2. 公钥部署:将公钥上传到服务器或服务平台(如 GitHub)。该平台将公钥存储在指定的位置(如 ~/.ssh/authorized_keys 文件)。
  3. 连接请求:客户端尝试通过 SSH 连接到服务器时,服务器会检查客户端是否有与其存储的公钥匹配的私钥。
  4. 认证流程
    • 服务器生成一个随机数(challenge),使用客户端提供的公钥加密,并将加密后的随机数发送给客户端。
    • 客户端使用私钥解密这个随机数,然后将解密后的结果返回给服务器。
    • 服务器验证解密后的随机数与原始生成的是否一致。如果一致,则认证通过,允许连接。

这种方式不需要每次都输入密码,因此非常安全且便捷,特别适合自动化和远程工作流。

]]>
https://forelink.top/index.php/2024/09/11/%e9%80%9a%e8%bf%87ssh%e6%9d%a5%e8%ae%a4%e8%af%81github/feed/ 0
Git 常用指令 https://forelink.top/index.php/2023/11/06/git-%e5%b8%b8%e7%94%a8%e6%8c%87%e4%bb%a4/ Mon, 06 Nov 2023 07:29:12 +0000 https://forelink.top/?p=216 仓库创建:

在任意目录右键打开Git bash窗口
执行命令 git init 即可在该目录下创建一个隐藏的.git文件夹。

基础指令:

1.git add [name](工作区 —> 暂存区) (git add . 将所有文件加入到暂存区)

2.git commit (暂存区 —> 本地仓库)
git commit -m “comment” comment是注释

3.touch [name] 创建一个文件在当前目录下

4.git status (查看当前状态)

5.git log(查看提交记录)
git-log在前置操作中配置后,可以将其作为别名

版本回退:

指令 git reset –hard [commitID]

查看已删除的记录:

指令 git reflog

创建忽略文件:

指令 touch .gitignore

在之中写入拒绝git管理的文件名(可以使用通配符)

]]>