您现在的位置是:首页 >技术交流 >git新手教程(命令行和vscode的git功能)网站首页技术交流

git新手教程(命令行和vscode的git功能)

CJerry8 2025-03-23 12:01:02
简介git新手教程(命令行和vscode的git功能)

git新手教程

参考文档:尽量“手撕”代码系列 - 飞书云文档

参考视频:【研1基本功 别人不教的,那就我来】SSH+Git+Gitee+Vscode 学会了就是代码管理大师_哔哩哔哩_bilibili

【大学生扫盲课】1 Git、GitHub 和 Gitee 完整讲解:从基础到进阶功能_哔哩哔哩_bilibili

1、git bash下载

安装时,把add a git bash profile to windows terminal勾选上,这样可以直接在终端上执行git命令

image-20250207121318265

2、SSH秘钥设置

  1. 配置个人信息(输入的命令有引号)
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
  1. 生成SSH秘钥(-t rsa是使用RSA算法生成秘钥,-C是备注,通常是邮箱地址)
ssh-keygen -t rsa -C "你的邮箱"
  1. 添加公钥到远程仓库

找到路径,C:Users12743.ssh,其中id-rsa是私钥,id_rsa.pub是公钥

image-20250207122201424

然后打开公钥文件,复制其中的内容,粘贴到gitee或者github的ssh公钥设置,添加公钥

image-20250207122829995

3、关联远程仓库

首先新建一个文件夹,在控制台中进入该文件夹,然后使用,git init创建本地仓库

下面是已有本地仓库的命令:

cd existing_git_repo                                        # 进入本地仓库
git remote add origin git@gitee.com:cjerry8/learngit.git    #本地仓库知道了与哪个远程仓库关联
# git remote add:添加一个远程仓库;git@gitee.com:cjerry8/learngit.git:这是远程仓库的 SSH 地址
git push -u origin "master"        #将本地的 master 分支代码推送到远程仓库的 master 分支,后续可以直接git push

4、如何推送到远端仓库

一共分为三步

4.1 命令行

  1. 添加文件到暂存区
git add .  # 这是把当前文件夹的所有文件都添加到暂存区
# git add 文件路径
  1. 提交到本地仓库
git commit -m "提交说明"
  1. 推送到远端仓库
git push  # 可以直接推送到之前的master分支,第一次推送时使用上面的命令

4.2 vscode的git操作

当修改文件保存后,不需要使用命令,可以直接用vscode的git工具

  1. 修改保存后,会出现这样的更改(下面的四个符号分别是打开文件 取消更改 暂存更改 M是修改的标志),点击暂存更改(+号)相当于上面的,git add命令

image-20250207145352932

  1. 点击暂存后,会出现暂存的更改。如果又对文件进行修改,下面的更改又会出现

image-20250207145716439

image-20250207145818040

image-20250207145952286

如果再次点击+号,则会把1.txt的更改合在一起

image-20250207150107555

  1. 对更改进行提交(添加修改消息,然后点击提交即可)相当于提交到本地仓库。即前面的:git commit -m "xiaoxi"命令

image-20250207150409820

image-20250207150648352

  1. 现在相当于所有的操作都在本地的新分支上,想要把它传到远程仓库(相当于前面的git push),如果直接使用git push会报错,因为是第一次把本地分支push到远端,需要使用下面这个复杂一点的命令 git push -u origin cjerry/0207_test
git push -u origin cjerry/0207_test  # 新分支第一次push,不能直接用git push

image-20250207150949042

或者直接使用vscode操作,点击发布branch,可以看到远端也多了一个分支(只有第一次新分支需要这样,后面为同步更改即可

image-20250207151540711

image-20250207151652631

5、具体的git使用功能

5.1 如何在某一版的代码上创建新的分支

例如:在师兄的代码上进行修改,肯定不能直接在上面修改。所以需要创建一个新的分支,然后再这个分支上修改,这样就不会影响到主分支的进程(注意每个分支其实都是整个项目的克隆,包含所有的文件)会显示多了一个本地分支

git checkout -b cjerry/0207_test  # 创建分支的命令,后面的cjerry...是分支的名称 建议用日期作为分支的名称

image-20250207143620878

上面是在默认的主分支的某一次commit上创建新分支,如果想要在某一次提交的基础上创建新分支呢?

右键某一个版本,然后点击checkout,然后再命令行输入上面的指令即可:git checkout -b cjerry/0207_test2,这样就成功在world版本上创建了test2分支,可以发现1.txt的内容也只到world,没有修改一和修改二

image-20250207152018448

image-20250207152305718

image-20250207152342275

5.2 撤回某一提交git reset

例如:在当前分支上进行了修改提交,然后发现改错了或者需要再进行修改,(如果再创建分支的话,就会出现多个分支的叠加,结构就会很复杂,如下图所示),所以需要撤回

image-20250207153218380

所以需要使用下面的命令,把上一次的提交回退了(效果如下图1,有一条红色的线)。然后左侧也出现了当时的更改(变成了暂存的更改),点击-号,然后点击更改的取消即可

git reset --soft HEAD^

image-20250207153717327

image-20250207153630143

如果我想在这次的代码的基础上进行修改,则按照之前的方法,更改-暂存的更改-提交,然后会显示下图的图标(一上一下

image-20250207154230709

这时如果点击同步更改,会报错,需要使用命令行强制执行(这样才能强制修改远端),如下图所示(修改四就消失了,下面的红色是点击同步更改后,进行了合并,与本操作无关)

git push -f

image-20250207155541850

5.3 添加其他仓库的远程分支(git fetch)

前面的操作都是对一个远程仓库,如果需要更改远程仓库需要使用下面的命令

git remote -v  # 显示目前关联的远程仓库,效果如下图所示

image-20250207160119351

然后使用之前关联远程仓库的命令:(后面是一个新仓库的ssh地址)注意直接使用origin会报错,因为origin这个远端名字已经被用了,可以用origin2,此时就会有两个仓库(如下图所示)

git remote add origin2 git@gitee.com:cjerry8/new.git

image-20250207164141160

接着如果仓库有分支,可以使用 git fetch提取(但是会默认提取origin,所以需要指定origin2)可以看到远端分支就多了origin2的分支

git fetch origin2 --depth 10  # --depth 10 是设定只提取最近的十次提交

image-20250207164627718

5.3 git merge合并分支(用于合作)

比如你开发了一个功能,别人开发了别的功能,所以需要合并。Git 会将 feature-branch 分支的更改合并到当前分支。(把子分支的东西合并到主分支

  • 如果两个分支没有冲突,Git 会自动创建一个新的合并提交,将这两个分支的历史记录结合在一起。
  • 如果存在冲突,Git 会要求你手动解决冲突,然后创建合并提交。
git merge feature-branch

image-20250207165643829

5.4 git rebase(变基)合并分支(用于合作)

git rebase 是另一种合并更改的方式,但它通过重新应用提交来改变历史记录,使提交历史更加线性。如下,其实就是会保存提交历史。

image-20250207170042738

5.5 git cherry-pick将特定提交引入当前分支

要将某个分支特定的提交(通过其哈希值识别)引入当前分支,可以使用以下命令:

git cherry-pick <commit_hash>
# 这个commit_hash值需要自己找,下图的第一个commit就是

image-20250207170408263

image-20250207171846064
]

5.5 git cherry-pick将特定提交引入当前分支

要将某个分支特定的提交(通过其哈希值识别)引入当前分支,可以使用以下命令:

git cherry-pick <commit_hash>
# 这个commit_hash值需要自己找,下图的第一个commit就是

[外链图片转存中…(img-zV6e3ArP-1738920954918)]

[外链图片转存中…(img-tbS8hiBy-1738920954918)]

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。