您现在的位置是:首页 >技术交流 >git新手教程(命令行和vscode的git功能)网站首页技术交流
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命令
2、SSH秘钥设置
- 配置个人信息(输入的命令有引号)
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
- 生成SSH秘钥(-t rsa是使用RSA算法生成秘钥,-C是备注,通常是邮箱地址)
ssh-keygen -t rsa -C "你的邮箱"
- 添加公钥到远程仓库
找到路径,C:Users12743.ssh
,其中id-rsa是私钥,id_rsa.pub是公钥
然后打开公钥文件,复制其中的内容,粘贴到gitee或者github的ssh公钥设置,添加公钥
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 命令行
- 添加文件到暂存区
git add . # 这是把当前文件夹的所有文件都添加到暂存区
# git add 文件路径
- 提交到本地仓库
git commit -m "提交说明"
- 推送到远端仓库
git push # 可以直接推送到之前的master分支,第一次推送时使用上面的命令
4.2 vscode的git操作
当修改文件保存后,不需要使用命令,可以直接用vscode的git工具
- 修改保存后,会出现这样的更改(下面的四个符号分别是打开文件 取消更改 暂存更改 M是修改的标志),点击暂存更改(+号)相当于上面的,
git add
命令
- 点击暂存后,会出现暂存的更改。如果又对文件进行修改,下面的更改又会出现
如果再次点击+号,则会把1.txt的更改合在一起
- 对更改进行提交(添加修改消息,然后点击提交即可)相当于提交到本地仓库。即前面的:
git commit -m "xiaoxi"
命令
- 现在相当于所有的操作都在本地的新分支上,想要把它传到远程仓库(相当于前面的git push),如果直接使用git push会报错,因为是第一次把本地分支push到远端,需要使用下面这个复杂一点的命令
git push -u origin cjerry/0207_test
git push -u origin cjerry/0207_test # 新分支第一次push,不能直接用git push
或者直接使用vscode操作,点击发布branch,可以看到远端也多了一个分支(只有第一次新分支需要这样,后面为同步更改即可)
5、具体的git使用功能
5.1 如何在某一版的代码上创建新的分支
例如:在师兄的代码上进行修改,肯定不能直接在上面修改。所以需要创建一个新的分支,然后再这个分支上修改,这样就不会影响到主分支的进程(注意每个分支其实都是整个项目的克隆,包含所有的文件)会显示多了一个本地分支
git checkout -b cjerry/0207_test # 创建分支的命令,后面的cjerry...是分支的名称 建议用日期作为分支的名称
上面是在默认的主分支的某一次commit上创建新分支,如果想要在某一次提交的基础上创建新分支呢?
右键某一个版本,然后点击checkout,然后再命令行输入上面的指令即可:git checkout -b cjerry/0207_test2
,这样就成功在world版本上创建了test2分支,可以发现1.txt的内容也只到world,没有修改一和修改二
5.2 撤回某一提交git reset
例如:在当前分支上进行了修改提交,然后发现改错了或者需要再进行修改,(如果再创建分支的话,就会出现多个分支的叠加,结构就会很复杂,如下图所示),所以需要撤回
所以需要使用下面的命令,把上一次的提交回退了(效果如下图1,有一条红色的线)。然后左侧也出现了当时的更改(变成了暂存的更改),点击-号,然后点击更改的取消即可
git reset --soft HEAD^
如果我想在这次的代码的基础上进行修改,则按照之前的方法,更改-暂存的更改-提交,然后会显示下图的图标(一上一下)
这时如果点击同步更改,会报错,需要使用命令行强制执行(这样才能强制修改远端),如下图所示(修改四就消失了,下面的红色是点击同步更改后,进行了合并,与本操作无关)
git push -f
5.3 添加其他仓库的远程分支(git fetch)
前面的操作都是对一个远程仓库,如果需要更改远程仓库需要使用下面的命令
git remote -v # 显示目前关联的远程仓库,效果如下图所示
然后使用之前关联远程仓库的命令:(后面是一个新仓库的ssh地址)注意直接使用origin会报错,因为origin这个远端名字已经被用了,可以用origin2,此时就会有两个仓库(如下图所示)
git remote add origin2 git@gitee.com:cjerry8/new.git
接着如果仓库有分支,可以使用 git fetch
提取(但是会默认提取origin,所以需要指定origin2)可以看到远端分支就多了origin2的分支
git fetch origin2 --depth 10 # --depth 10 是设定只提取最近的十次提交
5.3 git merge合并分支(用于合作)
比如你开发了一个功能,别人开发了别的功能,所以需要合并。Git 会将 feature-branch
分支的更改合并到当前分支。(把子分支的东西合并到主分支)
- 如果两个分支没有冲突,Git 会自动创建一个新的合并提交,将这两个分支的历史记录结合在一起。
- 如果存在冲突,Git 会要求你手动解决冲突,然后创建合并提交。
git merge feature-branch
5.4 git rebase(变基)合并分支(用于合作)
git rebase
是另一种合并更改的方式,但它通过重新应用提交来改变历史记录,使提交历史更加线性。如下,其实就是会保存提交历史。
5.5 git cherry-pick将特定提交引入当前分支
要将某个分支特定的提交(通过其哈希值识别)引入当前分支,可以使用以下命令:
git cherry-pick <commit_hash>
# 这个commit_hash值需要自己找,下图的第一个commit就是
]
5.5 git cherry-pick将特定提交引入当前分支
要将某个分支特定的提交(通过其哈希值识别)引入当前分支,可以使用以下命令:
git cherry-pick <commit_hash>
# 这个commit_hash值需要自己找,下图的第一个commit就是
[外链图片转存中…(img-zV6e3ArP-1738920954918)]
[外链图片转存中…(img-tbS8hiBy-1738920954918)]