14. September 2023
GIT
是一个分布式版本控制系统
建立github与本地电脑的协议连接,这里需要使用到SSH
安装SSH^[Git配置SSH-Key|https://docs.github.com/zh/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account] 然后执行以下命令生成秘钥:
ssh-keygen -t rsa -C "[email protected]"
执行命令后需要进行3次或4次确认:
2.如果上一步置顶的保存路径下已经有秘钥文件,则需要确认是否覆盖(如果之前的秘钥不再需要则直接回车覆盖,如需要则手动拷贝到其他目录后再覆盖);
3.创建密码(如果不需要密码则直接回车);
4.确认密码如果不需要密码则直接回车);
在指定的保存路径下会生成2个名为id_rsa和id_rsa.pub的文件:
需要选择所有内容,包括SSH-RSA,以下选择是错误的,无法添加到GitHub。
验证连通性
ssh -T [[email protected]](mailto:[email protected])
如果出现: Hi POTPER! You've successfully authenticated, but GitHub does not provide shell access. 检查现有 SSH 密钥 SSHkey地址 测试 SSH 连接 设置 SSH 密钥并将其添加到你在 GitHub.com 上的帐户后,可以测试连接。 git push origin main
Tips:命令行显示内容以此颜色高亮显示 参考
生成秘钥的文件位置,默认位置为/c/Users/ye_k/.ssh,文件名为Id_rsa,可以在生成时,冒号后添加路径加文件名,也可以直接添加文件名。 /c/Users/ye_k/.ssh/id_rsa →生成文件id_rsa在/c/Users/ye_k/.ssh路径下 rename_rsa→生成文件rename_rsa在打开命令行的地址。我这里使用git bash在博客地址栏,那生成的文件在博客地址栏下。 文件管理器地址:%userprofile%/.ssh
Created directory '/c/Users/ye_k/.ssh'.
输入密码,直接回车就是不设置密码。如果设置密码,以后每次提交都需要使用该密码确认。一般不设置密码。
再次输入密码。直接回车
ssh-keygen -t rsa -C "[email protected]"
因为本地的 git 库和远程的库并不是一致的,需要进行一次 pull 操作才能继续 push。 第一种解决办法就是加参数 -f ,强制推送,但是这样很危险,会导致其他的更新提交失败,也就是说原来该库下所有文件都会被删除掉,只剩下本次提交的文件了。日常不建议这么操作,但是其实本次第一次是可以的,因为当前库下没有还没有有效文件。
git push -u -f origin main
git push -u -f origin <branch >
第二种方案为:先把除 .git 文件夹外的所有文件复制到其他目录备份,然后 git pull 当前库下的文件下来,然后把这些文件和自己需要的文件结合处理好(本次就是删除这些文件,再把原文件复制回来),重新提交即可。日常推荐这种方法,养成好习惯。
# 1.移动除 .git 外的文件到另一个目录下
# 2.pull 该库当前文件,最后的参数是因为合并两个不相关的项目(即,不知道彼此存在并且提交历史不匹配的项目)时,会发生Git错误:fatal: refusing to merge unrelated histories,此时出现记录文件,先按住 ctrl+:,再输入 wq 即可。
git pull origin master --allow-unrelated-histories
# 3.合并这些文件和第一次移动出去的文件,本次就是删除这些文件,把那些文件移动回来就好了
# 4.提交本地
git add . git commit -m "first commit"
# 5.提交远程
git push -u origin master
上传成果
branch 'main' set up to track 'origin/main'.
git blame用来追溯一个指定文件的历史修改记录。它能显示任何文件中每行最后一次修改的提交记录。 所以,如果你在代码中看到一个有 bug 的方法,你可以使用 git blame 标注这个文件,查看哪一次提交引入了这行。 用法:git blame filename
.gitignore
的格式规范如下:
#
开头的行都会被 Git 忽略。
'#' 注释行
/
)开头防止递归。/
)结尾指定目录。!
)取反。# 忽略所有的 .a 文件
*.a
# 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
!lib.a
# 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
/TODO
# 忽略任何目录下名为 build 的文件夹
build/
# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf
绑定远程仓库
git remote add Blog-pp [email protected]:POTPER/BLOG-PP.git
usage:
git remote add [
add文件错误、 解决办法
删除主题下的 .git
文件夹,或者将主题添加为 Git Submodule
git branch -M main
git branch -M <旧分支名称> <新分支名称>
提交的缓存区
显示当前工作分支 branch
#学习日志 也不知道是因为GIT 设置了电脑的.shh地址。还是重新登陆 GitHub desk、 我上传到github就有用了。 大概率是因为设置了.shh吧 那么git 的左右暂时就用做是设置.shh 地址。 还有git 的版本管理作用。目前是接触不到了。