github的正确是使用方法 | 实践记录以及工具使用

69 阅读4分钟

静态网页项目部署全记录

一、项目背景与初始部署思路 最近在忙一个静态网页项目,老师要求把项目放到团队的pages功能里,这样就能实时展示页面布局了。我一开始想的是,先在本地建个存储库,用git init命令就能搞定,这一步是创建本地的Git仓库,为后面的操作打基础。然后把本地仓库和远程仓库关联起来,要是远程仓库地址是https://github.com/your_username/your_repository.git,那就用git remote add origin https://github.com/your_username/your_repository.git这个命令,这里的origin就是远程仓库的一个别名,方便后面操作。可没想到,这过程中出了一堆错。 我先怀疑是不是权限不够,就在GitHub平台上去改仓库可见范围。在GitHub上,得先登录账号,找到对应的仓库页面,点仓库设置里的“Options”(不同版本可能名字有点不一样),在“Visibility”(可见性)那看看权限设置。结果发现我是管理员,按说不该有权限问题,这就奇怪了。

二、SSH推送的尝试与问题

既然初始方法不行,我就试试用SSH推送。首先得生成SSH密钥,用ssh-keygen -t rsa -b 4096 -C "your_email@example.com"这个命令,它会在~/.ssh目录下生成id_rsa(私钥)和id_rsa.pub(公钥)两个文件。然后把公钥加到GitHub上,登录GitHub账号,进设置里的“SSH and GPG keys”,点“New SSH key”,在“Title”那写个像“My Laptop SSH Key”这样的描述,把id_rsa.pub文件内容(用cat ~/.ssh/id_rsa.pub能看到并复制)粘贴到“Key”那,再点“Add SSH key”就行。 公钥加好后,用git remote set-url origin git@github.com:your_username/your_repository.git把远程仓库地址改成SSH方式的。但接着问题就来了,SSH密钥好像没起作用,还碰到好多麻烦。有时候找不到存储库,这时候可以用git reflog看看操作记录,分析哪步错了;有时候连不上GitHub端口,就用ssh -T git@github.com检查SSH连接正不正常,不正常的话就根据提示看看SSH密钥加对了没,网络好不好;更离谱的是连分支都创建不了,正常创建分支是先用git branch new_branch建一个,再用git checkout new_branch切换过去,但我这都不行。反正推送能碰到的错误我基本都试了个遍,就是弄不好,可把我折腾坏了。

三、成功推送的解决方法

好在最后我找到了一个办法。先把原来的本地项目仓库复制一份,假如原仓库目录是original_project_dir,新目录是copied_project_dir,就在命令行用cp -r original_project_dir copied_project_dir-r这个参数能把原仓库里的所有东西都复制过去。 然后在新目录里把原来的.git文件夹删掉,用rm -rf.git,不过这命令得小心用,因为它会直接删掉.git文件夹和里面所有东西,别误删了其他重要文件。-r是递归删除,-f是强制删除,就算文件夹里有东西也会删。 删完再在这个目录重新初始化Git仓库,用git init。然后用http方式关联远程仓库,地址是https://github.com/organization_name/your_repository.git的话,还是用git remote add origin https://github.com/organization_name/your_repository.git。 都弄好后就可以提交推送项目了。先git add.把修改的文件加到暂存区,再git commit -m "Your commit message"提交到本地仓库,这里的“Your commit message”要换成你实际的提交说明,比如“修改了静态网页的一些小问题”。最后git push origin master把本地master分支(要是在其他分支操作就改下分支名)推到远程仓库,这样就成功推送了,可不容易啊。

四、仓库类型引发的问题与最终选择

但这还没完,老师要求用私人仓库,可团队的pages功能只能用公共仓库。这就矛盾了。 我就去试其他部署方式,像vercel和bolt。在Vercel上,先注册登录,点“Import Project”选项目源,可能要用vercel init初始化项目,它会让你选项目类型、指定项目目录啥的,弄好后用vercel --prod部署到生产环境。 在Bolt上也类似,先注册登录,把项目上传上去(可能用网页上传功能或者相关CLI命令,看Bolt平台咋设计的),可能会用到bolt init初始化项目,bolt deploy部署项目。 可倒霉的是,因为是组织项目,这些部署方式都得升级,我忙了半天啥都没弄成。最后没办法,只能把仓库改成公共的。在GitHub上改很简单,登录账号进仓库页面,点设置里的“Options”,在“Visibility”里选“Public”就行。虽然是网页操作,但背后也是靠相关命令实现的,这次项目部署可真是让我长了不少见识。