截止发文,全世界刚迈入2024年,大家都又老了一岁,不由感叹:记忆力真是一天不如一天了。
事情是这样的:为了完成于2021年谋划,在2022年准备执行,又在2023年未完成的目标——“将技术栈从基础开始过一遍并尽可能点亮更多的技能树”,我又双叒叕在新一年的开始准备新一轮的学习。强迫症,对应的学习相关知识与代码一定要建一个远程仓库,并版本控制。是的,新年立flag,今年应该能完成既定目标
可日常工作中一般远程环境已配好,且早就将pull
、push
绑定在工具上,图形操作,又因为流程严格控制等原因,我已经快大半年没自己建过仓库并管理啦,如今正要建仓,感觉自己是条金鱼(实际上是条咸鱼),完全记不起来怎么做!于是,借此机会,用本文作一个记录,记录自己GitHub:仓库初始化并绑定刚初始化的项目的流程。俺是菜鸟,就从初级的一些简单操作开始吧!
学习目标
GitHub
等仓库。Git
进行版本控制。学习步骤
来都来了,首先要快速回顾一下 Git 的基础。这一小节我们简单列举Git一些需要掌握的概念,然后列一个基本、常用的命令表格。
Git 是一个开源的分布式版本控制系统。
Git三大区域
关于这三个区域的详解,可参考:CSDN-优秀Git详细教程
对于想要快速回顾的大佬,以及像我一样的新手,简单来说,Git 有这几个区,常用的一些的操作与这几个区有关。了解这几个区,有助于接下来的学习。至于日常使用,我们一般情况下熟练运用常用的一些命令,以及了解一些策略,尽可能避免代码冲突即可。
好了,概念的快速回顾完毕,接下来我们快速学习 Git 的一些基本命令。
常用的初级命令基本如下。
# 查看分支
git branch
# 查看远程分支
git branch -v
# 创建分支
git branch [name]
# 切换分支
git checkout [name]
# 创建并切换分支
git checkout -b [name]
# 将当前分支与参数name的分支合并
git merge [name]
# 删除分支
git branch -d [name]
# 本地创建初始化
git init
# 本地克隆
git clone [url]
# 查看远程仓库
git remote -v
# 添加至暂存区
git add
# 提交到分支
git commit -m "description"
# 推送push
git push [remoteName] [localBranchName]
# 拉取pull
git pull [remoteName] [localBranchName]
以上命令,初级阶段,已经够用了。至于高级一些的命令,如rebase
、cherry-pick
等,深入学习时再了解。
有了上一小节对 Git 这个工具的大致并快速的回顾,我们接下来就可以创建仓库,并将回顾的知识很快用上了!
以下是创建 GitHub 远程仓库的参考步骤:
New 仓库
必填信息
结果
出现这个熟悉的初始化界面,我们的仓库就创建成功啦!
老了,渐渐跟不上时代了。个人尚未涉足新LTS Java 17,暂时先用回Java 8:
接下来这个项目要用到什么依赖,到时候用到再添加即可,此处不赘述。
创建好项目后,本地启动看看有没有报错,无的话,这一步就大功告成。
首先,我们进入我们新建项目的根目录,然后,选择以下步骤执行:
创建本地仓库
git init
绑定仓库
git reomte remove origin [url]
特别地,如果我们是用原有的项目换绑的情况下,需要执行以下完整的
一般绑定/换绑远程仓库命令:
# 查看远程地址
git remote -v
# 移除原有地址
git reomte remove origin [url]
# 添加远程仓库
git remote set-url origin [url]
这里由于是新仓库,我们直接绑定即可。
当然,以上步骤都是可以通过集成工具的图形化界面完成的。
这一小节我们先写一个hello world,对新项目进行推拉实战吧。
例行公事,写个 hello world:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
项目根目录下,执行
# 查看 分支状态 信息
git status
# 全部添加到暂存区
git add .
# commit
git commit -m 'description'
接下来,就是推拉代码啦:
# 先拉远程分支, gitHub 默认为main
git pull origin [branch_name]
# 推到远程分支
git push origin [branch_name]
若许久没有对自己的远程仓库操作过,那么此次初次操作时,可能会出现:
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
参考解决方案
ssh-keygen -t rsa
生成的SSH key 具体路径在 C:\用户\用户名.ssh 文件夹
ssh: connect to host github.com port 22: Connection timed out
Please make sure you have the correct access rights
and the repository exists.
并且,检查过网络没有问题,则:
ssh -T -p 443 git@ssh.github.com
查看鉴权信息。Host github.com
User [your_email]
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443
其中,查询自己的 email 配置可以采用:git config --list
命令,这个配置的意思是,将github.com这个host,用443端口进行ssh链接。之后,就能通过 443 端口,实现github代码推拉。
fatal: refusing to merge unrelated histories
解决方案
git pull origin main --allow-unrelated-histories
一般情况下,pull 操作 会 auto-merge。
然后add 、 commit 并 push 一下就好了。
若是全栈同学,推荐使用CZ规范提交,先准备一个npm,然后步骤如下:
下载commitizen
npm install -g commitizen
下载cli
npm install -g conventional-changelog conventional-changelog-cli
配置
commitizen init cz-conventional-changelog --save-dev --save-exact
接着,就可以使用 git cz 提交代码啦。不过要十分注意的是,由于 cz 需要 node 进行管理,后端项目要配置好gitignore文件,纯后端玩cz也会造成多了一个前端依赖包的别扭。但无论如何,规范 commit 是一项好习惯,虽然有点别扭,但cz确实可以为我们的规范提交节省一点时间。
趁自己还记得点东西,复习一遍 GitHub 仓库 & Git 基础用法。希望能有一点参考价值。 本文我们主要学习了: