【工具与中间件】Git&GitHub相关知识与一些问题解决、工具推荐

发布时间:2024年01月22日

Git与GitHub:仓库初始化初级流程

前言

截止发文,全世界刚迈入2024年,大家都又老了一岁,不由感叹:记忆力真是一天不如一天了。

事情是这样的:为了完成于2021年谋划,在2022年准备执行,又在2023年未完成的目标——“将技术栈从基础开始过一遍并尽可能点亮更多的技能树”,我又双叒叕在新一年的开始准备新一轮的学习。强迫症,对应的学习相关知识与代码一定要建一个远程仓库,并版本控制。是的,新年立flag,今年应该能完成既定目标

可日常工作中一般远程环境已配好,且早就将pullpush绑定在工具上,图形操作,又因为流程严格控制等原因,我已经快大半年没自己建过仓库并管理啦,如今正要建仓,感觉自己是条金鱼(实际上是条咸鱼),完全记不起来怎么做!于是,借此机会,用本文作一个记录,记录自己GitHub:仓库初始化并绑定刚初始化的项目的流程。俺是菜鸟,就从初级的一些简单操作开始吧!

学习目标

  • 初步会用GitHub等仓库。
  • 结合一些图形化界面,初步会用Git进行版本控制。

学习步骤

    1. Git 基础快速回顾
    1. 创建 GitHub 远程仓库,并初始化
    1. 编写 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]

以上命令,初级阶段,已经够用了。至于高级一些的命令,如rebasecherry-pick等,深入学习时再了解。

2. Git Hub 创建仓库

有了上一小节对 Git 这个工具的大致并快速的回顾,我们接下来就可以创建仓库,并将回顾的知识很快用上了!

以下是创建 GitHub 远程仓库的参考步骤:

New 仓库
1

必填信息
2

结果
3

出现这个熟悉的初始化界面,我们的仓库就创建成功啦!

3. 版本控制实战

3.1 创建本地项目

老了,渐渐跟不上时代了。个人尚未涉足新LTS Java 17,暂时先用回Java 8:
4

接下来这个项目要用到什么依赖,到时候用到再添加即可,此处不赘述。

创建好项目后,本地启动看看有没有报错,无的话,这一步就大功告成。

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 合并请求

5

4. 补充与总结

4.1 可能会遇到的问题

若许久没有对自己的远程仓库操作过,那么此次初次操作时,可能会出现:

fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

参考解决方案

    1. 重新配置SSH key:
ssh-keygen -t rsa

生成的SSH key 具体路径在 C:\用户\用户名.ssh 文件夹

    1. 若在之后报
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代码推拉。

    1. 还没完,一般新仓库,初次 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 基础用法。希望能有一点参考价值。 本文我们主要学习了:

  1. Git 基本概念:作用、三大区域。关于这些概念,是我们日后对这个工具深入学习的基础,多少先事先了解一下。推荐阅读文中提到的参考文章。
  2. GitHub 建仓:我们的目标始终指向远程仓库,并尽可能多练习版本控制。建仓是最基本的第一步。
  3. 绑定远程仓库:这一小节记录了初始化仓库后,本地创建项目并绑定远程仓库,以及绑定的一些步骤与注意点。
  4. 推拉实战、合并请求:实际工作中最常用的步骤。
  5. 实用的一些补充,问题解决方案与推荐工具。

参考资料

文章来源:https://blog.csdn.net/CoderSharry/article/details/135675253
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。