• 本文为个人实际使用的总结,做笔记留存,仅供参考

开始使用

下载安装

  • 推荐理由
该软件可以帮我们将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代码(推荐)
  • 假设你有个mastermain分支
  • 现在你在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常用命令速查表

argocd gitlab凭据_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 提交规范