GIT

GIT

简短说明

是一个分布式版本控制系统


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

生成多个 SSH-Key 、生成多个公钥和私钥

Tips:命令行显示内容以此颜色高亮显示 参考

  1. Generating public/private rsa key pair.
    # 确认秘钥的保存路径(如果不需要改路径则直接回车);
  2. Enter file in which to save the key (/c/Users/ye_k/.ssh/id_rsa):

生成秘钥的文件位置,默认位置为/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'.

  1. Enter passphrase (empty for no passphrase):

    输入密码,直接回车就是不设置密码。如果设置密码,以后每次提交都需要使用该密码确认。一般不设置密码。

  2. Enter same passphrase again:

    再次输入密码。直接回车

Your identification has been saved in /c/Users/ye_k/.ssh/id_rsa
Your public key has been saved in /c/Users/ye_k/.ssh/id_rsa.pub
The key fingerprint is:
...

fs

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'.

Github配置ssh key的步骤(大白话+包含原理解释)参考

git blame 是什么意思

git blame用来追溯一个指定文件的历史修改记录。它能显示任何文件中每行最后一次修改的提交记录。 所以,如果你在代码中看到一个有 bug 的方法,你可以使用 git blame 标注这个文件,查看哪一次提交引入了这行。 用法:git blame filename

GIT概念

GIT版本系统目标

  • 速度
  • 简单的设计
  • 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
  • 完全分布式
  • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

什么是快照

文件 .gitignore 的格式规范

如下:

  • 所有空行或者以 # 开头的行都会被 Git 忽略。

    '#' 注释行

  • 可以使用标准的 glob 模式匹配,它会递归地应用在整个工作区中。
  • 匹配模式可以以(/)开头防止递归。
  • 匹配模式可以以(/)结尾指定目录。
  • 要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。
示例
# 忽略所有的 .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

awe 切换分支

git branch -M main
git branch -M <旧分支名称> <新分支名称>

提交的缓存区

显示当前工作分支 branch


GIT 20221012

#学习日志 也不知道是因为GIT 设置了电脑的.shh地址。还是重新登陆 GitHub desk、 我上传到github就有用了。 大概率是因为设置了.shh吧 那么git 的左右暂时就用做是设置.shh 地址。 还有git 的版本管理作用。目前是接触不到了。