# 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。 |
tags | tag 用于给某个上述类型的对象指配一个便于开发者记忆的名字,通常用于某次 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 |