文章目录
Git与GitHub:仓库初始化初级流程
前言
截止发文,全世界刚迈入2024年,大家都又老了一岁,不由感叹:记忆力真是一天不如一天了。
事情是这样的:为了完成于2021年谋划,在2022年准备执行,又在2023年未完成的目标——“将技术栈从基础开始过一遍并尽可能点亮更多的技能树”,我又双叒叕在新一年的开始准备新一轮的学习。强迫症,对应的学习相关知识与代码一定要建一个远程仓库,并版本控制。是的,新年立flag,今年应该能完成既定目标
可日常工作中一般远程环境已配好,且早就将pull
、push
绑定在工具上,图形操作,又因为流程严格控制等原因,我已经快大半年没自己建过仓库并管理啦,如今正要建仓,感觉自己是条金鱼(实际上是条咸鱼),完全记不起来怎么做!于是,借此机会,用本文作一个记录,记录自己GitHub:仓库初始化并绑定刚初始化的项目的流程。俺是菜鸟,就从初级的一些简单操作开始吧!
学习目标
- 初步会用
GitHub
等仓库。 - 结合一些图形化界面,初步会用
Git
进行版本控制。
学习步骤
-
- Git 基础快速回顾
-
- 创建 GitHub 远程仓库,并初始化
-
- 编写 Hello world,自己给自己版本控制
1. Git 基础快速回顾
来都来了,首先要快速回顾一下 Git 的基础。这一小节我们简单列举Git一些需要掌握的概念,然后列一个基本、常用的命令表格。
1.1 Git 相关概念简单回顾
Git 是一个开源的分布式版本控制系统。
Git三大区域
- 工作区
- 缓存区
- 资源区
关于这三个区域的详解,可参考:CSDN-优秀Git详细教程
对于想要快速回顾的大佬,以及像我一样的新手,简单来说,Git 有这几个区,常用的一些的操作与这几个区有关。了解这几个区,有助于接下来的学习。至于日常使用,我们一般情况下熟练运用常用的一些命令,以及了解一些策略,尽可能避免代码冲突即可。
好了,概念的快速回顾完毕,接下来我们快速学习 Git 的一些基本命令。
1.2 Git 基本命令
常用的初级命令基本如下。
1.2.1 分支命令
# 查看分支
git branch
# 查看远程分支
git branch -v
# 创建分支
git branch [name]
# 切换分支
git checkout [name]
# 创建并切换分支
git checkout -b [name]
# 将当前分支与参数name的分支合并
git merge [name]
# 删除分支
git branch -d [name]
1.2.2 推拉命令
# 本地创建初始化
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
等,深入学习时再了解。
2. Git Hub 创建仓库
有了上一小节对 Git 这个工具的大致并快速的回顾,我们接下来就可以创建仓库,并将回顾的知识很快用上了!
以下是创建 GitHub 远程仓库的参考步骤:
New 仓库
必填信息
结果
出现这个熟悉的初始化界面,我们的仓库就创建成功啦!
3. 版本控制实战
3.1 创建本地项目
老了,渐渐跟不上时代了。个人尚未涉足新LTS Java 17,暂时先用回Java 8:
接下来这个项目要用到什么依赖,到时候用到再添加即可,此处不赘述。
创建好项目后,本地启动看看有没有报错,无的话,这一步就大功告成。
3.2 绑定远程仓库
首先,我们进入我们新建项目的根目录,然后,选择以下步骤执行:
创建本地仓库
git init
绑定仓库
git reomte remove origin [url]
特别地,如果我们是用原有的项目换绑的情况下,需要执行以下完整的
一般绑定/换绑远程仓库命令:
# 查看远程地址
git remote -v
# 移除原有地址
git reomte remove origin [url]
# 添加远程仓库
git remote set-url origin [url]
这里由于是新仓库,我们直接绑定即可。
当然,以上步骤都是可以通过集成工具的图形化界面完成的。
3.3 代码推拉
这一小节我们先写一个hello world,对新项目进行推拉实战吧。
3.3.1 推拉实战
例行公事,写个 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]
3.3.2 合并请求
4. 补充与总结
4.1 可能会遇到的问题
若许久没有对自己的远程仓库操作过,那么此次初次操作时,可能会出现:
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
参考解决方案
-
- 重新配置SSH key:
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
查看鉴权信息。
- 先执行
-
- 在我们生成 ssh key 的目录下,编辑一个config文件,注意,该文件命名为config,并且没有后缀,内容如下:
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代码推拉。
-
- 还没完,一般新仓库,初次 commit 时,会报:
fatal: refusing to merge unrelated histories
解决方案
git pull origin main --allow-unrelated-histories
一般情况下,pull 操作 会 auto-merge。
然后add 、 commit 并 push 一下就好了。
4.2 补充:规范提交CZ
若是全栈同学,推荐使用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确实可以为我们的规范提交节省一点时间。
4.3 总结
趁自己还记得点东西,复习一遍 GitHub 仓库 & Git 基础用法。希望能有一点参考价值。 本文我们主要学习了:
- Git 基本概念:作用、三大区域。关于这些概念,是我们日后对这个工具深入学习的基础,多少先事先了解一下。推荐阅读文中提到的参考文章。
- GitHub 建仓:我们的目标始终指向远程仓库,并尽可能多练习版本控制。建仓是最基本的第一步。
- 绑定远程仓库:这一小节记录了初始化仓库后,本地创建项目并绑定远程仓库,以及绑定的一些步骤与注意点。
- 推拉实战、合并请求:实际工作中最常用的步骤。
- 实用的一些补充,问题解决方案与推荐工具。