2022更文挑战1 - git篇

215 阅读2分钟

「这是我参与2022首次更文挑战的第1天,活动详情查看:2022首次更文挑战

准备:git 配置SSH

  1. 查看有无配置:在文件夹下C:\Users\用户\.ssh查看
  2. 生成SSH秘钥,执行命令之后不断Enter即可
ssh-keygen -t rsa -C 'git邮箱地址'
  1. 生成后在下图所示中查看 image.png

项目背景

项目分支有:master分支、test分支、develop分支、新需求分支,新需求分支以requirement为例,协同开发多分支项目目前遇到的问题主要有两个:

在错误分支上完成需求

本应该在requirement分支编辑的代码,在test分支编辑完成了,可执行以下操作恢复到requirement分支(以在VScode中操作为例):

  1. 把test分支更改的文件添加到暂存的更改里面:

    • 选中需要更改或暂存的文件右键选择 stash change,弹出push stash弹框
    • push stash弹框输入 "新需求误编辑到了test分支,需转移到requirement分支" ,就添加到了stashes
  2. 切换分支到requirement分支

    • requirement分支里面执行选中版本 "新需求误编辑到了test分支,需转移到requirement分支 "执行apply stash操作,在更改或暂存的更改里面就有相应的文件
  3. 删除掉不需要的statshes记录执行dorp stash操作

合并分支遇到的问题

合并分支时,有时候会发现自己合并错误分支,或者合并之后的文件不在需要了,直接放弃所有更改并不能回退到之前的版本,此时执行git pull命令会失败,失败报错:

> git pull --tags origin requirement
error: You have not concluded your merge (MERGE_HEAD exists).
hint: Please, commit your changes before merging.
fatal: Exiting because of unfinished merge.

恢复之前合并文件的一种解决方法:

// 只能在合并导致冲突后运行
git merge --abort
// 从冲突合并中重置时使用
git reset --merge
git pull

这样就可以进行后续的各种git操作了。