Git 使用说明和配置
前言
不会Git操作的伙伴,轻则写不了代码,重则误操作搞丢自己的代码或者干掉别人的代码。 因为进入公司后,就不只是你一个人在一个工程上写代码,而是所有这个项目组的伙伴都需要在这个工程上写代码,大家要在统一的Git的规范完成代码开发和提交。
软件安装
Git 是一个软件工具,在使用前需要进行安装。
下载地址
linux下安装
Debian/Ubuntu
# apt-get install git
对于 Ubuntu,此 PPA 提供最新的稳定上游 Git 版本
# add-apt-repository ppa:git-core/ppa
# apt update; apt install git
Centos
sudo yum install git
配置账户
当你拿到一个Git的仓库(Github、Gitcode、Gitee、GitLab),让你克隆(git clone)代码的时候,不要虾呵呵的上去就点个zip下载。
zip 下载的代码,只是当前分支的,下载后用 IntelliJ IDEA 打开也没有 Git 标识,不能进行仓库的pull、push、checkout等操作。
ps:你要做都是配置账户 ssh 秘钥,或者下载的时候输入 git 仓库账号密码(目前很多仓库为了安全,不在支持账号密码方式下载代码了。)
配置git账户
[root@lavm-aqhgp9nber ~]# git config --global user.name "liming"
[root@lavm-aqhgp9nber ~]# git config --global user.email "2557530647@qq.com"
创建ssh秘钥
[root@lavm-aqhgp9nber ~]# ssh-keygen -t rsa -C "2557530647@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:lgf+3a1srOvDD0znv+/jiR3iwMaZtxW94k9FI1HzJAk 184172133@qq.com
The key's randomart image is:
+---[RSA 2048]----+
| Eoo+.|
| ooo|
| . . .o|
| . o ..o|
| S . . ..o|
| . oo+o+ .+|
| .O+=o=.|
| . Bo@+o|
| .+@*BB|
+----[SHA256]-----+
命令:ssh-keygen -t rsa -C “2557530647@qq.com”
操作:一路敲回车同意就可以了。
获取ssh秘钥
$ cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCvwIa4clDmLOY2uM3806ZZ+eyuuvqyNcXX3B+t7rneqcIQ5FpNjJ4AAUXaBUdGo4Rp93/lb9AlY9s5M13JeTCwp3mw4efGzssQCpqm0HauTptqjKeEqxsdreQ+6lY69pbC2+egut/MFblPQOcpCIAg4q8XumqJrtphb+s52wX5p9+8RJq24B3RM/BCymUWx0ZUrJlz0HPxYVrN8kWZudQ+Gf+JN+TN3CeNrYG2gicDMljxzfXwX0EblnuZicByuXwfoBait+NZtJGlmh0lyKnWzeX4/atLHZUx8N3NeC6oxkpVct6fnrNFekOn2QnJrJZqsWeABNhgPZvgdOFxB9cJ CSDN_LiMingfly@noreply.gitcode.com
命令:ssh-keygen -t rsa -C “2557530647@qq.com”
注意:.ssh 点开头的文件夹是隐藏文件,Windows/Mac 都可以设置查看隐藏文件。Windows 是设置里配置,Mac 是通过 Shift + Command + . 开启和关闭查看隐藏文件。
配置ssh秘钥
1:gitcode.net配置
配置密码地址
:2:github.com配置
配置地址
检出代码 - 命令
大家会说检出代码,不会说下载。因为检出对应的是 git clone 命令,而下载是 http 直接点击链接。在我们使用一些图形化的 git 界面操作代码检出的时候,走的也是 git clone 命令。
检出地址
检出命令
默认检出(master)
git clone git@github.com:liming/openai-code-review.git
你可以复制你需要的工程地址进行检出。
指定分支
git clone -b lm-init-project git@github.com:lm/openai-code-review.git
添加 -b 分支名,可以指定分支名称检出
其他命令
git branch:查看当前工程分支
git branch -r:查看远程分支列表
git pull:拉取分支最新代码
git push:推送本地变更的代码。【这样的操作有图形化界面,更方便】
git fetch:后去远程仓库最新分支变动,这个很有用。在你想操作分支创建新或者看其他人的分支时候,先操作下 git fetch 看下最新的分支变动。
git merge origin/master:将远程分支的 master 代码合并到本地分支 master 上。【类似这样的操作有图形化界面,点击即可】
检出代码 - IntelliJ IDEA
IntelliJ IDEA 本身就提供了 Git 的图形化操作,也是最简单最常用的方式。只要你的代码是通过 Git 检出的,那么通过配置 Git 的 IntelliJ IDEA 打开工程,就会自动的被 Git 管理。
配置 Git
像是 Mac 电脑会自动默认的配置好 IntelliJ IDEA Git 直接使用即可,如果你的电脑在 IntelliJ IDEA 打开工程后,提示没有 Git 则可进入设置手动配置。
检出代码
方式1;打开工程前
方式2;打开工程后
图形界面
1:分支使用
2:提交代码
3:查看记录
4:查看对比
这个代码对比非常适合代码评审,也可以用于自己学习代码。可以知道任意两个分支的代码差异,也就知道了代码上一次是什么样,这一次是做了什么开发。
5:合并分支
在公司中很多时候是大家一起在一个工程开发代码,那么这个时候就会涉及合并代码的。如果有多人共同开发一个接口方法,就会在合并的时候产生冲突。所以要特别注意。
注意,📢在Git中,merge和rebase是两种用于合并分支变更的方法。每种方法都有其特定的用途和行为:
Merge
概念: merge命令用于将一个分支的更改合并到当前分支,通常会生成一次新的合并提交(commit),从而保留分支历史。
历史记录: 使用merge会保留所有开发历史记录,包括分支点,这使得历史记录图呈现出一个分叉和合并的树状结构。
使用场景:
当你想保留完整的历史记录,了解如何以及何时进行了分支。
通常用于将分支合并到主分支(如main或master)时,以保留分支的历史上下文。
git checkout main
git merge feature-branch
Rebase
概念: rebase命令用于重新定位一系列的提交,可以将分支上的更改申请到另一分支的顶端,因而能得到更线性的历史。
历史记录: Rebase重新写了提交历史(改变了提交的父提交),这会导致更线性的提交历史,从而更清晰,但会丢失分支合并信息。
使用场景:
当你希望提交历史更加简洁和线性。
合并特性分支到主分支前用以避免杂乱的分支合并历史。
需要小心在共享分支上使用,因为重写的提交历史会影响他人。
git checkout feature-branch
git rebase main
选择何时使用
Merge适合用于保持完整的提交历史,不改变现有提交的哈希。
Rebase适合用于清理提交历史,通常在提交尚未推送至共享存储库时使用。
普通合并
在实际的开发中,大家承接新的需求,会从master拉一个新的分支。拉取后,开始编写代码,完成开发后提交。
之后切换到master分支,通过把自己的开发的分支合并回master分支进行提交。
冲突合并
回滚分支
回滚提交和回滚push
虽然 Git 提供了回滚代码的功能,但一定要谨慎使用。怎么谨慎?第一个谨慎就是 push 的代码一定确保可以构建和运行,否则不要 push!第二个谨慎是要回滚代码,需要和团队中对应的伙伴打招呼,避免影响别人测试或者上线。
1:先选择要在哪个分支的哪次提交上进行回滚。这里选择的是 test 分支上的提交进行回滚。
2:这里选择 Hard 回滚。因为我们所有的都是合并到 test 分支,所以 test 分支丢失也没问题。可以重新合并。但要和同组伙伴提前说明。
3:回滚后,你会看到代码只剩下从回滚往下的提交内容了。
4:回滚后,你不能直接 push 提交了,这个之后会报错;fast-forward 因为此时本地分支落后于远程分支。
5:所以要通过 git push origin HEAD --force 进行强制提交。或者你可以把 test 的远程分支删掉,之后在提交。
提交工程 - IntelliJ IDEA
创建本地仓库
Create Git repository 创建一个本地的暂存库。你可以把开发的内容暂时提交到本地仓库中。
提交本地代码
创建远程仓库
推送本地工程
最后推送完成就可以看到自己的代码进入仓库中了!
好了 至此 Git 使用说明和配置 点点关注不迷路 老铁们!!!!!