cat
Shioho

# Git 账号清空

设置清空 git 保存的账号密码并每次操作时强制输入账号密码,即 git 不自定保存账号密码

git config --system --unset credential.helper

# Git 自动保存输入的账号密码

设置 git 自动保存输入的账号密码

git config --global credential.helper store

# SSH 密钥生成

ssh-keygen  -t rsa  -C "邮箱"

# TortoiseGit 设置 ssh 方式

1. 打开小乌龟内置工具 PuTTY Key Generator 生成秘钥

2. 保存秘钥至本地

3. 打开 Pageant 工具,添加密钥文件

4. 添加公钥到账号

# TortoiseGit Pageant 开机自启动且加载 SSH Key

1. 首先找到 TortoiseGit 的安装目录的 bin 目录,然后找到 pageant.exe 运行 或是 window 键打开开始菜单,搜索 pageant 右键打开文件夹所在位置创建并复制快捷方式

2.window+r 输入 shell:startup; 点击确定将复制好的快捷方式放入该目录下

3. 右键属性中找到快捷方式在目标后面拼上 ppk 文件的目录 (空格 + 文件路径)

多 ppk 继续拼接即可,ppk 无法自动设置输入密码,需要手动输入

# 'git help gc' 错误解决方法

git help gc错误解决方法,有两种方式,推荐第一种方式。

1,在当下工程,使用「Git Bash Here」执行下面命令

$ git fsck
$ git gc --prune=now

2. 如果执行完上面的命令还是不行的话,可以尝试删掉.git\objects\pack 下的文件。重新 pull 就可以了。记得做好备份。

# git 还原本地提交的某个节点

$ git reset 节点id  相对路径

# git 查找不可访问文件

git fsck --unreachable

# 恢复被删除的 Git stash 记录

当辛辛苦苦工作了好几天的代码,一个手滑不小心重置了工作树的时候是不是很痛苦,试试下面的解决方案吧 (原文链接)

# 访问 Git 数据库中对象的连接和有效性

git fsck --unreachable

--unreachable 显示出所有不可访问的对象

unreachable blob a006a061d217fa2bd0b677382dafbbc37fb7bb95
unreachable commit 7d15700a371681272d42518823e8a0dcb39ac112
unreachable blob a61518e80a488927908b96b30abb5dfb7036e9a3
unreachable commit 5719e0b26d788b51590dcfc4120a5a1af05da9ed
unreachable blob 321fc00f3bd3c882838435eb369aad327ddf6c51
unreachable blob 103ca03c95f52f97be07615defaadf6644c6445c
unreachable blob cb54781533e2c2b59938fc1eec774951f0fadb14
unreachable commit f362c87f5d191cf36dd9772c03e99e9b62d96e6e
unreachable commit 576b90e8bd69f825168f46a6141fa1516dc32a6a
unreachable blob 1d7ed8094eec81bd0152819b7e8ff3f7ba4a3a4b

# 查看工作现场

使用 git show + sha 命令查找你需要恢复的那一条工作现场,sha 是上面的 key。【此时建议只关注 commit 类型的工作现场】

git show +<sha>

对于 commit,将看到分支信息、stash 时的备注信息、stash 操作的时间点等。
对于 blob,只能看到代码块,受限于窗口大小,往往显示不完整。
使用回车或者向下箭头,按一次多出一行代码。使用 q,退出查看工作现场。

也可以使用 git cat-file -p + sha 可以查看工作现场。

git cat-file -p +<sha>

如果是 blob,会显示完整代码。
如果是 commit,可能看到的会是多个对象,例如:

tree 9189ac84beec7e0063796f9640ad733cf6c143a1
parent 8e5d8eb7b94ab97b3e52b2835c2c0fa1cfd24f82
parent 60d315aa6a88b65761b9c499f356144c9e4c3a29
......

# 恢复记录

使用 git stash apply + sha 即可恢复,sha 就是你打算恢复的那一条记录的 key。但只可能恢复 unreachable commit 开头的记录,unreachable blob 是不能用 git statsh apply + 来恢复的,会报 not a stash-like commit 错误

git stash apply +<sha>

git statsh apply 只能恢复 unreachable commit 开头的记录, unreachable blob 无法用此命令恢复会报 not a stash-like commit 的错误

not a stash-like commit 解决方案:
1. 切换到丢掉 stash 的那个分支
2.git merge +sha 即可。如有冲突,处理一下就好。

# Git 中四种基本对象类型

数据类型含义
blobs每个 blob 代表一个(版本的)文件,blob 只包含文件的数据,而忽略文件的其他元数据,如名字、路径、格式等。
trees每个 tree 代表了一个目录的信息,包含了此目录下的 blobs,子目录(对应于子 trees),文件名、路径等元数据。因此,对于有子目录的目录,git 相当于存储了嵌套的 trees。
commits每个 commit 记录了提交一个更新的所有元数据,如指向的 tree,父 commit,作者、提交者、提交日期、提交日志等。每次提交都指向一个 tree 对象,记录了当次提交时的目录信息。一个 commit 可以有多个(至少一个)父 commits。
tagstag 用于给某个上述类型的对象指配一个便于开发者记忆的名字,通常用于某次 commit。

# github 单文件突破 100M 限制

1.windows 下安装 lfs 下载地址

2. 初始化本地项目 lfs

git lfs install

3. 添加大文件路径

git lfs track "*.exe"

4. 生成配置文件

git add .gitattributes

5. 推送即可 (注意:要先推送.gitattributes文件后才可上传大文件)

# github 上传缓存设置

git config --global http.postBuffer 1048576000
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

汘帆 微信

微信

汘帆 支付宝

支付宝