一文学会git常用命令和使用指南

这篇具有很好参考价值的文章主要介绍了一文学会git常用命令和使用指南。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0. 前言

背景:最近有刚入职公司的小伙伴们总是在git使用过程中一系列问题,而且问题很多都是低级问题。所以我觉得有必要分享一个帖子,和大家学习一下。找了一下公司git管理规范文档,发现文档的描述不是很好理解,而且已经和现在的管理方式有一定的出入。所以我自行总结了一个。希望大家能有所收获和收藏。
一文学会git常用命令和使用指南,工具,git从入门到精通,git,java,gitlab,intellij-idea

1.分支分类和管理

分支分类和管理是一个关键的版本控制实践,它可以帮助团队组织和管理代码开发过程。

1. 分支分类规范:

以下是以表格形式展示的分支分类规范和命名示例,目前git 没有硬性规范,这些规范都是大家在长期使用的过程中总结出来的,可能每个公司都有差异不用上纲上线

分支类型 描述 命名示例
主分支(Main Branch) 用于发布稳定版本和部署到生产环境 mainmaster
开发分支(Development Branch) 用于整体开发和集成新功能 develop
特性分支(Feature Branch) 用于开发单个功能或特性 feature/user-authentication
feature/payment-integration
发布分支(Release Branch) 用于准备项目发布 release/1.0.0
release/2.3.1
热修复分支(Hotfix Branch) 用于紧急修复生产环境中的问题 hotfix/bug-fix
hotfix/security-patch

2. 最佳实践

列举一个分支管理的最佳实践,仅供大家参考。

使用Git一般至少2个分支:master和develop
master:生产环境都来主干分支拿数据部署,也可以使用钩子自动完成
develop:开发分支,开发人员都是检出这个分支开发
使用辅助分支
feature:具体的功能开发分支,只与develop分支交互
release:发布版本,再经测试迭代后需要合并到master分支
hotfix:紧急bug修复分支,最后需要合并到master和develop分支中

一文学会git常用命令和使用指南,工具,git从入门到精通,git,java,gitlab,intellij-idea

3. 分支命名规范示例:

  • 使用小写字母和短划线(-)作为分支命名的分隔符。
  • 使用清晰、简洁的名称来描述分支的目的和内容。
  • 遵循一致的命名约定,以便团队成员能够轻松理解和识别分支。

4. 分支管理方法:

  • 使用版本控制系统(如Git)来跟踪和管理分支的创建、合并和删除。
  • 定义明确的分支策略和工作流程,包括分支的创建、合并和命名规范。
  • 确保团队成员了解和遵守分支管理规范,并进行必要的培训和沟通。
  • 定期进行分支合并和清理,删除不再需要的分支,以保持分支结构的清晰性和可维护性。

2. commit 注释规范

提交(commit)注释是版本控制系统中记录每次代码提交的重要信息。为了保持提交历史的清晰、易读和易于理解,以下是一种常用的提交注释规范, 这个规范是大多数公司在使用的,可能每个公司还有自己的特殊定义或者提交注释术语,这个不是标注答案,希望大家根据自己公司的规范提交注释,如果没有规范,可以参考下面的

1. 提交注释结构:

<类型><描述>
[可选] <正文>
  • <类型>:表示提交的类型,可以是以下之一:

    • 新增(feat):添加新功能或功能模块
    • 修复(fix):修复问题或错误
    • 文档(docs):更新文档或注释
    • 样式(style):调整代码格式或样式,不影响代码逻辑
    • 重构(refactor):重构代码,既不修复错误也不添加新功能
    • 测试(test):添加或修改测试代码
    • 杂项(chore):构建过程或辅助工具的变动
  • <描述>:简明扼要地描述本次提交的目的或变动内容。

  • [可选] <正文>:可选项,用于提供更详细的提交说明、变动原因、解决方案等。

也有下面这种常见的分类,不用纠结使用哪种,公司有规范,遵循公司规范,公司没有遵循自己学习到的规范。

  • build:修改项目的的构建系统(xcodebuild、webpack、glup等)的提交
  • ci:修改项目的持续集成流程(Kenkins、Travis等)的提交
  • chore:构建过程或辅助工具的变化
  • docs:文档提交(documents)
  • feat:新增功能(feature)
  • fix:修复 bug
  • pref:性能、体验相关的提交
  • refactor:代码重构
  • revert:回滚某个更早的提交
  • release:发布新版本
  • style:不影响程序逻辑的代码修改、主要是样式方面的优化、修改
  • test:测试相关的开发
  • improvement:在现有功能上优化、改进

2. 提交注释的准则:

  • 使用简洁、明确的语言描述提交的目的,避免过于模糊或冗长的注释。
  • 使用一般现在时(如"添加功能")而不是过去时来描述提交的变动。
  • 遵循一致的注释风格和约定,确保团队成员能够轻松理解和阅读提交历史。
  • 针对重要的提交,可以在正文部分提供更详细的说明,包括解决方案、参考文档等。

比如我举个例子,下面是一个项目的git代码提交的注释,大家可以看下。

  • feat:添加用户认证功能
  • fix:修复支付模块中的空指针异常
  • docs:更新README,添加安装说明
  • style:按照编码规范格式化代码
  • refactor:优化数据访问层,提升性能
  • test:添加API端点的单元测试
  • chore:更新部署脚本

其实我还看到过一些公司的git 注释规范是feat[模块名]:描述 这样一种结构,我觉得也是一种优秀的实践,粒度更细。

3. git 常用命令

1. git pull 核心用法

一文学会git常用命令和使用指南,工具,git从入门到精通,git,java,gitlab,intellij-idea
在特殊情况下我们如果使用IDEA pull 代码可以根据具体的场景操作
参数解释:

  • --rebase:使用 rebase 方式合并代码,将本地提交应用于拉取的代码之上,以保持提交历史整洁。
  • -ff-only:只进行快进合并(Fast-Forward Merge),如果无法快进合并,则中止操作并提示错误。
  • --no-ff:禁用快进合并,无论是否可以快进合并,都会创建一个新的合并提交。
  • --squash:在合并代码之前,将多个连续的提交压缩为一个提交,并且不会自动创建合并提交。
  • --no-commit:拉取代码后不会自动创建合并提交,允许您在继续操作之前对代码进行修改或执行其他操作。
  • --no-verify:在执行提交时,跳过 Git 钩子(Git hooks)的验证步骤。
# 使用 rebase 进行合并
git pull --rebase

# 只进行快进合并
git pull --ff-only

# 禁用快进合并,创建一个新的合并提交
git pull --no-ff

# 在合并代码之前,将多个连续的提交压缩为一个提交
git pull --squash

# 拉取代码后不会自动创建合并提交
git pull --no-commit

# 跳过 Git 钩子的验证步骤
git pull --no-verify

git pull 命令用于从远程仓库拉取最新的代码并合并到当前分支。下面是 git pull 命令的一些常见参数和相应的使用场景举例:

  1. git pull

    • 场景:在正常情况下,直接使用 git pull 可以从远程仓库拉取最新的代码并合并到当前分支。
    • 示例:git pull
  2. git pull origin <远程分支名>

    • 场景:当需要从特定的远程分支拉取代码时,使用该参数。
    • 示例:git pull origin main
    • 说明:这将从名为 origin 的远程仓库的 main 分支拉取最新的代码并合并到当前分支。
  3. git pull --rebase

    • 场景:当希望使用 rebase 方式合并代码,保持提交历史整洁时使用该参数。
    • 示例:git pull --rebase
    • 说明:这将从远程仓库拉取最新的代码,并将当前分支的提交应用于拉取的代码之上。
  4. git pull --no-commit

    • 场景:当希望从远程仓库拉取最新的代码,但暂时不想创建合并提交时使用该参数。
    • 示例:git pull --no-commit
    • 说明:这将从远程仓库拉取最新的代码并合并到当前分支,但不会自动创建合并提交。您可以在继续操作之前对代码进行修改或执行其他操作。
  5. git pull --ff-only

    • 场景:当希望只进行快进合并(Fast-Forward Merge),不创建额外的合并提交时使用该参数。
    • 示例:git pull --ff-only
    • 说明:如果远程分支可以直接快进合并到当前分支,那么将执行快进合并;如果无法快进合并,将会中止操作并提示错误。

2. git push 命令

  1. git push

    • 场景:在正常情况下,直接使用 git push 可以将当前分支的提交推送到与之关联的远程分支。
    • 示例:git push
  2. git push origin <本地分支名>:<远程分支名>

    • 场景:将本地分支的提交推送到指定的远程分支。
    • 示例:git push origin feature-branch:remote-branch
    • 说明:这将把名为 feature-branch 的本地分支的提交推送到名为 remote-branch 的远程分支。
  3. git push --force

    • 场景:强制推送,用于覆盖远程分支的提交历史。
    • 示例:git push --force
    • 说明:这将强制推送本地分支的提交,覆盖远程分支的提交历史。请谨慎使用,因为它可能会导致数据丢失或冲突。
  4. git push --tags

    • 场景:将本地所有的标签(tags)推送到远程仓库。
    • 示例:git push --tags
    • 说明:这将把本地所有的标签推送到远程仓库,以便在远程仓库中创建相应的标签。
  5. git push --set-upstream origin <本地分支名>

    • 场景:将本地分支与远程分支进行关联并推送。
    • 示例:git push --set-upstream origin feature-branch
    • 说明:这将推送本地分支的提交到名为 origin 的远程仓库,并将本地分支与远程分支进行关联。

1. 初始化一个新的仓库

  • 命令:git init
  • 示例:在当前目录初始化一个新的Git仓库。
    git init
    

2. 克隆一个远程仓库

  • 命令:git clone <远程仓库地址>
  • 示例:克隆名为origin的远程仓库到本地。
    git clone https://github.com/user/repo.git
    

3. 添加文件到暂存区

  • 命令:git add <文件名>
  • 示例:将file.txt添加到暂存区。
    git add file.txt
    

4. 添加所有修改的文件到暂存区

  • 命令:git add .
  • 示例:将所有修改的文件添加到暂存区。
    git add .
    

5. 提交暂存区的文件到仓库

  • 命令:git commit -m “提交注释”
  • 示例:提交暂存区的文件到仓库,并添加注释。
    git commit -m "提交文件"
    

6. 查看当前仓库的状态

  • 命令:git status
  • 示例:查看当前仓库的状态。
    git status
    

7. 查看提交历史记录

  • 命令:git log
  • 示例:查看当前分支的提交历史记录。
    git log
    

8. 查看文件的修改差异

  • 命令:git diff <文件名>
  • 示例:查看file.txt文件的修改差异。
    git diff file.txt
    

9. 查看分支列表

  • 命令:git branch
  • 示例:查看当前仓库的所有分支列表。
    git branch
    

10. 创建一个新分支

  • 命令:git branch 分支名
  • 示例:创建一个名为feature的新分支。
    git branch feature
    

11. 切换到另一个分支

  • 命令:git checkout <分支名>
  • 示例:切换到分支feature。
    git checkout feature
    
  1. 创建一个新分支并切换到该分支
  • 命令:git checkout -b <分支名>
  • 示例:创建一个名为bugfix的新分支并切换到该分支。
    git checkout -b bugfix
    

13. 合并指定分支到当前分支

- 命令:git merge <分支名>
- 示例:将分支feature合并到当前分支。
   git merge feature

14. 删除分支

  • 命令:git branch -d <分支名>
  • 示例:删除分支feature。
    git branch -d feature
    

15. 撤销工作区的修改

  • 命令:git checkout – <文件名>
  • 示例:撤销对file.txt文件的修改。
    git checkout -- file.txt
    

16. 撤销暂存区的文件

  • 命令:git reset HEAD <文件名>
  • 示例:撤销对file.txt文件的暂存。
    git reset HEAD file.txt
    

17. 回退到上一个提交版本

  • 命令:git reset HEAD^
  • 示例:回退到上一个提交版本。
    git reset HEAD^
    

18. 回退到指定提交版本

  • 命令:git reset <提交哈希值>
  • 示例:回退到提交哈希值为abc123的版本。
    git reset abc123
    

19. 拉取远程仓库的更新到本地

  • 命令:git pull <远程仓库名> <分支名>
  • 示例:从远程仓库origin的master分支拉取更新。
    git pull origin master
    

20. 推送本地分支到远程仓库

  • 命令:git push <远程仓库名> <分支名>
  • 示例:推送当前分支到远程仓库origin。
     git push origin feature
    

21. 强制推送本地分支到远程仓库

  • 命令:git push -f <远程仓库名> <分支名>
  • 示例:强制推送当前分支到远程仓库origin。
    git push -f origin feature
    

22. 查看远程仓库列表

  • 命令:git remote -v
  • 示例:查看当前仓库关联的远程仓库列表。
    git remote -v
    

23. 添加一个远程仓库

  • 命令:git remote add <远程仓库名> <远程仓库地址>
  • 示例:添加一个名为upstream的远程仓库。
    git remote add upstream https://github.com/user/repo.git
    

24. 移除一个远程仓库

  • 命令:git remote remove <远程仓库名>
  • 示例:移除远程仓库origin。
    git remote remove origin
    ```
    
    

25. 创建一个带有注释的标签

  • 命令:git tag -a <标签名> -m “标签注释”
  • 示例:创建一个名为v1.0的带有注释的标签。
    git tag -a v1.0 -m "版本1.0发布"
    ```
    
    

26. 查看标签列表

  • 命令:git tag
  • 示例:查看当前仓库的所有标签列表。
    git tag
    ```
    
    

27. 查看标签的详细信息

  • 命令:git show <标签名>
  • 示例:查看标签v1.0的详细信息。
    git show v1.0
    ```
    
    

28. 推送本地标签到远程仓库

  • 命令:git push <远程仓库名> <标签名>
  • 示例:推送本地标签v1.0到远程仓库origin。
    git push origin v1.0
    

29. 推送所有本地标签到远程仓库

  • 命令:git push --tags
    示例:推送所有本地标签到远程仓库。
    git push --tags
    

30. 删除本地标签

  • 命令:git tag -d <标签名>
  • 示例:删除本地标签v1.0。
    git tag -d v1.0
    

31. 删除远程标签

  • 命令:git push <远程仓库名> --delete <标签名>
  • 示例:删除远程仓库origin的标签v1.0。
    git push origin --delete v1.0
    ```
    
    

32. 使用Git配置别名

  • 命令:git config --global alias.<别名> <命令>
  • 示例:将git status命令配置为别名st。
    git config --global alias.st status
    

33. 查看远程仓库信息

  • 命令:git remote show <远程仓库名>
  • 示例:查看远程仓库origin的详细信息。
    git remote show origin
    

34. 创建并切换到一个新分支

  • 命令:git checkout -b <分支名>
  • 示例:创建一个名为feature的新分支并切换到该分支。
    git checkout -b feature
    

35. 重命名分支

  • 命令:git branch -m <旧分支名> <新分支名>
  • 示例:将旧分支名feature改为new-feature。
    git branch -m feature new-feature
    

36. 查看远程仓库的提交记录

  • 命令:git log <远程仓库名>/<分支名>
  • 示例:查看远程仓库origin的master分支的提交记录。
    git log origin/master
    

37. 从远程仓库拉取指定分支到本地

  • 命令:git fetch <远程仓库名> <远程分支名>:<本地分支名>
  • 示例:从远程仓库origin拉取develop分支到本地的feature分支。
    git fetch origin develop:feature
    

38. 查看远程分支列表

  • 命令:git branch -r
  • 示例:查看远程仓库的所有分支列表。
    git branch -r
    

39. 将指定分支重置到特定提交版本

  • 命令:git reset <提交哈希值> --hard
  • 示例:将当前分支重置到提交哈希值为abc123的版本。
    git reset abc123 --hard
    

40. 修复合并冲突

  • 命令:git merge --abort
  • 示例:在合并过程中,如果出现冲突,使用该命令放弃合并并恢复到合并之前的状态。
    git merge --abort
    

41. 修改最后一次提交的注释

  • 命令:git commit --amend
  • 示例:修改最后一次提交的注释。
    git commit --amend
    

42. 暂时存储当前的修改

  • 命令:git stash save
  • 示例:暂时存储当前的修改。
    git stash save
    

43. 查看存储的修改列表

  • 命令:git stash list
  • 示例:查看存储的修改列表。
    git stash list
    

44. 恢复最近一次存储的修改

  • 命令:git stash apply
  • 示例:恢复最近一次存储的修改到工作区。
    git stash apply
    

45. 恢复指定的存储的修改

  • 命令:git stash apply <stash@{编号}>
  • 示例:恢复编号为0的存储的修改到工作区。
    git stash apply stash@{0}
    

46. 删除最近一次存储的修改

  • 命令:git stash drop
  • 示例:删除最近一次存储的修改。
    git stash drop
    

47. 删除指定的存储的修改

  • 命令:git stash drop <stash@{编号}>
  • 示例:删除编号为0的存储的修改。
    git stash drop stash@
    
    
    

4.参考文档

Git 完整命令手册地址:http://git-scm.com/docs
PDF 版命令手册:github-git-cheat-sheet.pdf文章来源地址https://www.toymoban.com/news/detail-630940.html

到了这里,关于一文学会git常用命令和使用指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git 可视化工具 Fork 使用指南

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/125135486 本文出自【赵彦军的博客】 最近遇到一个新项目,经过数年的积累,大概有 30000 个分支,用可视化工具打开直接卡死。 由于分支实在是太多了,一般的可视化工具,直接卡死,比如 Sourcetree 就直接卡死,测试了

    2024年01月25日
    浏览(60)
  • 【Shell 命令集合 系统管理 】Linux 终端复用工具 screen命令 使用指南

    Shell 命令专栏:Linux Shell 命令全解析 screen命令是一个在Linux操作系统中使用的终端复用工具。它允许用户在一个终端窗口中同时运行多个终端会话,并且可以在这些会话之间自由切换。 screen命令的主要作用是提供一个“会话管理器”,可以在一个终端窗口中创建多个虚拟终端

    2024年02月05日
    浏览(74)
  • 学会使用git,快乐编写代码(常用命令和远程连接)

    相信不管是前端还是后端的小伙伴在开发的时候都要使用到我们的代码管理工具 git ,当然了 非计算机 的友友们也是会用到的,方便管理我们的项目(文件) 版本 ,不用再去来回复制粘贴啦。一般分可视化( sourceTree )和命令行( git Bash命令行 )两种方式。今天就给大家梳

    2024年02月03日
    浏览(99)
  • Git基础教程-常用命令整理:学会Git使用方法和错误解决

    目录 一、了解Git的基本概念 二、Git的安装和配置 Git的安装 Git的配置 用户信息 文本编辑器 差异分析工具 查看配置信息 三、Git的基本操作 基本原理 基本操作命令 基本操作示例 场景一:创建新仓库 场景二:拉取并编辑远程仓库 四、常见问题及解决方法 解决冲突 git add文件

    2024年02月10日
    浏览(75)
  • 【Git】速食Git,一文学会Git使用

    版本控制是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。【通俗来说就跟我们所玩的游戏一样,不断地更新迭代游戏内容,比如赛季更新呀,新出皮肤呀等】 ①实现跨区域多人协

    2024年02月01日
    浏览(51)
  • Flyway详解(使用说明及避坑指南、一文搞懂flyway)

    Flyway是一款开源的数据库版本管理工具,可以实现管理并跟踪数据库变更,支持数据库版本自动升级,而且不需要复杂的配置,能够帮助团队更加方便、合理的管理数据库变更。 例:创建两个sql变更文件,项目启动后会将两个文件中的sql语句全部执行。 简单举个例子:开发

    2023年04月22日
    浏览(50)
  • Git使用指南

    # 创建本地branch git branch branch # 当前branch 重命名 git branch -m branch # 列举所有分支  等同于 git branch --list git branch # 列举remote branch git branch -a # 安全删除branch git branch -d branch # 强制删除branch git branch -D branch # 删除remote branch # 等同于git push origin :branch git push origin --delete branch # 查询

    2023年04月25日
    浏览(53)
  • 【git】git提交代码-使用简易指南

    1、创建新仓库:git init 创建新文件夹,打开 执行: git init ,创建新的git仓库 2、检出仓库:git clone 执行该命令,以创建一个 本地仓库 的克隆版本: git clone /path/to/repository   如果是 远端服务器 上的仓库,则执行: git clone username@host:/path/to/repository 3、git的世界观 你的本地仓

    2024年02月02日
    浏览(55)
  • vscode中git使用指南

    要使用 git clone 命令来克隆(下载)一个Git项目,你需要知道项目的远程仓库URL。以下是如何使用 git clone 的基本步骤: 打开终端或命令行窗口。 切换到你想要将项目克隆到的目标目录。你可以使用 cd 命令进入目标目录。例如,如果要将项目克隆到你的用户主目录下: 运行

    2024年02月03日
    浏览(56)
  • uni-app的常用 使用指南

    自带api功能 https://uniapp.dcloud.io/api/ui/prompt?id=showloading 组件宫格布局 https://uniapp.dcloud.io/component/uniui/uni-grid 修改shadow内的item即可修改宫格每一项的样式 来自页面周期函数 用户上拉到顶部以上,执行周期函数,进行刷新操作 需要在 pages.json 里,找到的需要下拉刷新页面的page

    2024年02月03日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包