1、在 GitHub 上为新项目创建一个库时,默认是不使能主页功能的
如果你想要使用 GitHub 的主页功能做一个博客或一份简历,需要人为设置一下。如下图:
制作简历,这里有一份更详细的参考:如何在Github Pages搭建自己写的页面?
2、GitHub 对文件路径大小写敏感
我的简历中用到的一张图片保存格式是“PNG”,代码里的url中写成了小写的“png”。在本地验证的时候,图片是正常显示的,但是合入到 GitHub 上就无法显示了。修改成统一的之后,问题就解决了。
3、幽灵记录
假设这样一个场景:将一个目录初始化为仓库,然后将开发一半的文件放进来,通过 git 进行管理。在将某个文件 git rm 之后(注意,还没有 git commit),你突然发现对 git 还不太熟,担心通过命令操作不保险,不如先手动备份一份,然后就将这个目录复制到了其他地方。又进行了一些列操作之后,你想把这个初始化为仓库的目录下的内容全部干掉,重新来。于是,你在目录下进行 rm、commit、push,你以为彻底删除了。然后你把之前手动备份过的文件拷贝回来。但是,这时通过 git status 查看,发现仍有未 git commit 的文件,就像幽灵一样。
这里插一条 Git 知识点:将本地某个目录 init 为仓库时,该目录下就会生成 .git 目录(在 windows 系统下“.”开头的文件或文件夹都是默认隐藏的),它里面存储着管理当前目录内容所需的仓库数据,比如提交记录等等。
所以,回到上面场景中提到的问题,这其实是 .git 目录在作怪。你把手动备份的目录重新拷贝回来之后,也将之前的 .git 目录拷贝了回来。手动备份之前,对文件进行了 git rm,但是没有 git commit。所以.git目录就保存了到git rm那一步的记录。后面拷贝回来,git status 就会出现有文件“Changes not staged for commit”,这其实都是之前的记录。
在这点上,SVN 也是一样的工作原理,通过一个 .SVN 来保存提交记录。
4、克隆远程仓库
1)将远程仓库clone到本地不需要对提前当前目录初始化就能 clone,默认会在当前目录生成一个文件名和远程仓库分支一样的文件夹。这个文件夹中有一个“.git”文件夹。
2)如果克隆提示远程仓库 does not exist,在确认 GitHub 已有这个分支后,检查命令中的路径拼写是否有误。我之前犯过一次错误,使用 ssh 地址,结果把:打成了/,所以一直克隆失败。
5、Pull Request 流程
他人的项目(在他人的GitHub账号下的库中)-------【Fork(GitHub上操作)】------>自己的GitHub账户下,创建了一个相同的库-------【clone】------>复制到自己的本地-------【checkout -b】------>创建一个特性分支用于修改代码,并切换到该分支-------【修改、添加代码】------>确认修改无误-------【push】------>创建远程分支-------【登录GitHub,并切换至特性分支】------>Send Pull Request