git常用知识

常用命令

分支

bash 复制代码
# 列出所有本地分支
git branch

# 新建一个分支,与指定的远程分支建立追踪关系
# git branch --track [branch] [remote-branch]
git branch --track dev-branch origin/branchname

# 切换到指定分支,并更新工作区
git checkout [branch-name]

# 从远程仓库拉取最新的更改
# 默认情况下,git pull 会从当前分支的远程跟踪分支(通常是 origin/当前分支名)拉取代码,并尝试将这些更改合并到你的本地分支中。
git pull

# 如果你想要从特定的远程分支拉取代码,你可以指定远程仓库名和分支名,如下所示:
git pull origin branch-name

# 选择一个commit,合并进当前分支
git cherry-pick [commit]

# 查看本地分支和远程分支的跟踪关系
git branch -vv

版本管理

bash 复制代码
# 放弃工作区的更改:将所有已修改的文件恢复到上一次提交的状态
git checkout -- .

# 暂存本分支的修改
git stash
# 实际应用中推荐给每个stash加一个message,用于记录版本,使用`git stash save`取代`git stash`命令
git stash save "test-cmd-stash"

# 将最近一次暂存数据恢复并从栈中删除
git stash pop

# 恢复最近一次暂存的修改
git stash apply
# git stash更多详细介绍:https://www.cnblogs.com/tocy/p/git-stash-reference.html

# 回退版本
git reset [--soft | --mixed | --hard] [HEAD]
# 该命令详细介绍:https://www.cnblogs.com/qdhxhz/p/18084982

部分情况解决方案

个人远程分支版本回退

bash 复制代码
# 首先回退本地分支
git reflog
git reset --hard Obfafd

# 强制推送到远程分支
git push -f

某个分支正在开发,需要暂存修改,去另一个分支开发其他内容

bash 复制代码
# 暂存本分支的修改
git stash save "修改描述"

# 查看暂存的修改
git stash list

# 缓存堆栈中的指定stash应用到工作目录中,但并不删除stash拷贝
git stash apply stash@{0}

# 删除指定stash
git stash drop stash@{0}

git pull 时报错

bash 复制代码
error: You have not concluded your merge (MERGE_HEAD exists).
hint: Please, commit your changes before merging.
fatal: Exiting because of unfinished merge

问题出现原因:

  1. 代码冲突,未合并代码就退出了;

  2. 代码未更新就改了同一个文件同一行

解决方案:

  1. 终止合并 git merge --abort;

  2. 恢复合并git reset --merge, 重新拉代码git pull

分支重命名

Git分支管理深度解析:分支重命名及相关选项详解-阿里云开发者社区

1、使用git branch命令

bash 复制代码
git branch -m <old-branch-name> <new-branch-name>
  • <old-branch-name>:原分支的名称。
  • <new-branch-name>:新分支的名称。

2、重命名当前分支

如果当前位于需要重命名的分支上,可以使用以下命令:

bash 复制代码
git branch -m <new-branch-name>

这会将当前分支直接重命名为新分支名。

3、 关联远程分支

在重命名分支后,如果该分支已经推送到远程仓库,还需要更新远程仓库上的分支名。可以使用以下命令:

bash 复制代码
git push origin :<old-branch-name> <new-branch-name>

这会删除远程仓库上的原分支,然后推送新的分支。

git提交规范

bash 复制代码
<type>(<scope>): <subject>
// 注意冒号 : 后有空格
// 如 feat(miniprogram): 增加了小程序模板消息相关功能

提交类型(type)

用于说明此次提交的类型,常见的类型包括

  • feat:表示新增了一个新功能

  • modify :修改功能

  • fix:修复了一个bug或问题

  • docs:修改了文档

  • style:修改了代码格式,没有改变逻辑

  • refactor:重构了代码,没有新增功能或修复bug

  • perf:优化了性能

  • test:添加或修改了测试用例

  • chore:构建过程或辅助工具的变动

作用域(scope)

表示此次提交影响的范围,可以是某个模块、组件或功能区域。

主题(subject)

是对此次提交的简短描述,通常以动词开头,使用第一人称现在时态,首字母小写,句尾不加句号。

相关推荐
李少兄7 小时前
在 IntelliJ IDEA 中修改 Git 远程仓库地址
java·git·intellij-idea
先跑起来再说13 小时前
Git 入门到实战:一篇搞懂安装、命令、远程仓库与 IDEA 集成
ide·git·后端·elasticsearch·golang·intellij-idea
承渊政道16 小时前
Linux系统学习【Linux系统的进度条实现、版本控制器git和调试器gdb介绍】
linux·开发语言·笔记·git·学习·gitee
Doro再努力16 小时前
【Linux操作系统12】Git版本控制与GDB调试:从入门到实践
linux·运维·服务器·git·vim
摇滚侠19 小时前
MAC IDEA GIT 提交区显示了几个不存在的目录
git·idea
城东20 小时前
Git使用[远程仓库远端的head比本地和提交的head旧,其他人拉不到最新代码]
git·head·远程仓库远端·比本地和提交的head旧·其他人拉不到最新代码
何中应1 天前
使用SSH地址拉取远程仓库代码报下面的错误
git
何中应1 天前
Git本地仓库命令补充
git
sun0077001 天前
执行repo sync -c -d -j4以后,提交未git push的代码看不到了。要怎么恢复?
git
胖虎11 天前
Git 一个本地仓库同时推送到两个远程仓库(详细教程)
git·多远程仓库·双远程仓库·git双远程·git备份