Windows 上 Git SSH 私钥要不要设置密码?
最近我重新整理了一下自己电脑上的 Git SSH 配置,顺手也想清楚了一个以前一直有点纠结的问题: 私钥到底要不要设置密码? 不设密码,git pull、git push 都很顺手; 设了密码,VSCode 或 IDEA 里又经常弹窗让输入,挺烦。 ...
最近我重新整理了一下自己电脑上的 Git SSH 配置,顺手也想清楚了一个以前一直有点纠结的问题: 私钥到底要不要设置密码? 不设密码,git pull、git push 都很顺手; 设了密码,VSCode 或 IDEA 里又经常弹窗让输入,挺烦。 ...
查看当前子模块 1 git submodule 输出类似: 1 a1b2c3d4 libs/foo (heads/main) 这里的 libs/foo 就是子模块路径。 也可以查看: 1 cat .gitmodules 输出类似: 1 2 3 [submodule "libs/foo"] path = libs/foo url = git@example.com:foo/bar.git 方法一:将 Submodule 转为普通目录(保留源码) 这种情况不直接删除目录,而是把子模块目录转换成普通目录。 Linux / macOS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ## 子模块目录 SUBMODULE=libs/foo ## 注销子模块 ## 会移除 .git/config 中的 submodule 配置 git submodule deinit -f "$SUBMODULE" ## 仅从 Git 索引中移除 ## 不删除本地代码 git rm --cached "$SUBMODULE" ## 删除 Git 对子模块的本地缓存 rm -rf ".git/modules/$SUBMODULE" ## 删除子模块目录内部的 Git 指向 ## 这里的 .git 可能是文件,也可能是目录 rm -rf "$SUBMODULE/.git" ## 重新作为普通目录加入 Git git add "$SUBMODULE" ## 提交变更 git commit -m "convert submodule to normal directory" Windows PowerShell 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ## 子模块目录 $SUBMODULE = "libs/foo" ## 注销子模块 ## 删除 .git/config 中的 submodule 信息 git submodule deinit -f $SUBMODULE ## 仅从 Git 索引中移除 ## 不删除本地代码 git rm --cached $SUBMODULE ## 删除 Git 对子模块的本地缓存 Remove-Item -Recurse -Force ".git/modules/$SUBMODULE" ## 删除子模块目录内部的 Git 指向 ## 这里的 .git 可能是文件,也可能是目录 Remove-Item -Recurse -Force "$SUBMODULE/.git" ## 重新添加为普通目录 git add $SUBMODULE ## 提交变更 git commit -m "convert submodule to normal directory" 方法二:删除 Submodule(不保留源码) Linux / macOS 下面命令仅需修改 SUBMODULE 字段。 ...
这里记录一下 Git 配置代理的几种常见方式。 首先要看远程仓库地址是哪种格式: ...
遇到个问题是:明明已经把 .idea/ 写进了 .gitignore,但 VS Code 里还是显示这些文件,Git 也还是在跟踪它们。 原因很简单:.gitignore 只对还没有被 Git 跟踪的文件生效。 如果某个文件或目录之前已经被提交过,Git 就已经开始管理它了。后面再把它写进 .gitignore,并不会自动停止跟踪。 ...
.ssh/config 本质上就是 SSH 的连接配置文件。 它最适合这些场景: 多个 Git 账号; 多个服务器; 不同服务器使用不同端口; 不同主机使用不同私钥; 想给复杂 SSH 地址起一个简单别名。 配置好以后,日常使用 Git 或 SSH 会方便很多,也能避免每次手动指定一堆参数。 ...
刚刚写的代码忘记提交本地仓库而直接更新,导致写的代码不见了,百度了一番,看到了解决方案~ VCS--git--unstash changes 可以看到暂存列表,通过 view 查看代码,apply就是回到该版本,stage就是一个类似于暂存区的东西,可以将你未提交的改动暂存起来,相当于存档一样,然后可以去做别的事情,等做完之后可以读档一样把当时的状态恢复