- 本文为个人实际使用的总结,做笔记留存,仅供参考
开始使用
下载安装
- 前往
Git
官网下载并安装:https://git-scm.com/download - 使用
HTTPS
同步代码,推荐同时下载并安装Git Credential Manager
- 推荐理由
该软件可以帮我们将Github的用户名与密码,以windows凭证的方式保存在本地,避免重复输入账号密码.
你可以前往 "控制面板\用户帐户\凭据管理器",查看Windows凭证
- 使用
SSH
同步代码,可参考下述步骤,或搜索Git配置SSH
关键字查看相关教程
1- 先配置提交信息
git config --global user.name "用户名"
git config --global user.email "邮箱"
2- 生成 SSH KEY,一直回车即可
ssh-keygen -t rsa -C "xx@xx.com" (-C:添加了密钥的注释,可选)
3- 找到公钥id_rsa.pub,并复制全部内容
C:\Users\xiaoming\.ssh\id_rsa.pub
C:\Users\[你的电脑用户名]\.ssh\id_rsa.pub
4- 登录自己的git(github、gitee、gitlab)
5- 到个人设置界面,找到SSH KEYS设置,粘贴刚才复制的公钥,保存即可
6-测试ssh是否连接成功
ssh -T git@xx.com (@后面的是git网站的地址)
如:ssh -T git@github.com / ssh -T git@git.iflytek.com
成功提示: Welcome to GitLab, @xiaoming!
如果失败的话,请自行解决或从头再试下,祝你成功!
【使用小乌龟(TortoiseGit)
配置可能遇到的问题】
- 如果你使用
TortoiseGit
配置了git的相关设置失败时,可能会导致无法克隆代码和使用sourseTree
等工具。 - 你可以尝试打开
sourseTree
>>顶部工具栏
>>选择工具
选项>>找到SSH 客户端配置
,选择SSH客户端
选项为openSSH
,保存再次测试下。
初始化配置
查看配置
git config --global --list // 查看是否已经配置了用户名与邮箱信息
开始配置
- 在任意位置,右键 >> 点击
Git Bash Here
- 配置提交的基础信息(即用户名、邮箱)
git config --global user.name "用户名"
git config --global user.email "邮箱"
例如:
git config --global user.name "xiaoming" // 根据自己的实际填写用户名
git config --global user.email "xiaoming@163.com" // 根据自己的实际填写邮箱
常见问题
分支
合并分支
- 使用
vscode
管理git
代码(推荐) - 假设你有个
master
和main
分支 - 现在你在
main
分支上变更了内容,需要合并到主分支master
上 - 步骤:
- 先在
main
分支提交你的更改到本地仓库 - 然后切换到
master
分支,在 源代码管理 > 分支 > 合并分支 > 选择main
删除分支
- 你可以直接在
vsCode
中,切换、合并、删除分支等操作。但有时还是需要指令操作,如删除远程的分支。
// 删除远程分支
git push origin --delete test1 // git push origin --delete [分支名]
// 删除本地分支
git branch -d test1 // git branch -d [分支名]
版本
版本回退
// 先回退版本
git reset --hard 3df2ef1 // git reset --hard [目标版本号]
// 强制推送到远程
git push -f
-
git reset
会删除之前的提交内容,可使用 git revert指令,不会改变过去的历史,详情参考如果你还不会用git回滚代码,那你一定要来看看
// 回退版本
git revert 3df2ef1 // git revert [目标版本号]
// 手动解决冲突,会生成一条新的提交记录
// 正常提交、推送
版本冲突
不能拉取与推送
- 如果远程分支中某个文件
a.md
被删除了 - 你未拉取最新的代码,就在本地的
a.md
中进行了新的修改,并提交了修改 - 当你将这个新的修改
push
到远程的时候,会要求你先pull
远程的新代码 - 当你
pull
远程代码时,会提示有冲突 - 此时如果直接合并冲突,会导致不能拉取,也不能提交
- 解决方案:
- 如果已经出现了不能拉取,也不能提交,可以百度错误码
- 若错误码为:
error: You have not concluded your merge
,可参考解决Git报错或输入下面的代码。
git merge --abort
git reset --merge
git pull
- 将状态还原到,发送冲突的时候。
- 使用命令先移出缓存去的问题文件
假设问题文件是 `a.md`
git rm a.md
- 然后,先拷贝自己的最新代码用于备份
- 提交删除
a.md
的删除变更 - 尝试
pull
远程的新代码 - 再新建
a.md
,并黏贴刚才拷贝的最新代码,再次提交变更 - 测试
附录与参考
Git常用命令速查表
git提交规范
* feat: 新功能、新特性
* fix/fixed: 修补某功能的bug
* update:更新某功能
* docs: 文档修改
* perf: 更改代码,以提高性能(在不影响代码内部行为的前提下,对程序性能进行优化)
* refactor: 代码重构(重构,在不影响代码内部行为、功能下的代码修改)
* style: 代码格式修改, 注意不是 css 修改(例如分号修改)
* test: 测试用例新增、修改
* build: 影响项目构建或依赖项修改
* optimize: 优化构建工具或运行时性能
* revert: 恢复上一次提交
* ci: 持续集成相关文件修改
* chore: 其他修改(不在上述类型中的修改)
* release: 发布新版本
* workflow: 工作流相关文件修改
参考
Git配置SSH及常用命令 GitHub徽标码云Git大全git commit 提交规范