使用git遇到的各种疑难杂症之解决办法

这篇具有很好参考价值的文章主要介绍了使用git遇到的各种疑难杂症之解决办法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用git遇到的各种疑难杂症之解决办法,编程辅助,git,笔记

使用git各种问题的解决之道,如何合理使用分支,合并分支冲突了怎么办?

  1. git init 初始化本地git仓库,会生成.git/文件夹
  2. git add . 添加文件到暂存区,文件开始被跟踪,文件修改后也要重新跟踪
  3. git commit -m '说明文字'  将暂存区的文件,提交到本地仓库
  4. 以上两步,可以合成一步 git commit -a -m '说明文字'
  5. git log 查看日志,罗列所有提交过的历史记录,根据记录ID可以回退版本
  6. git log --pretty=oneline 以一行简洁的形式显示日志
  7. git log --pretty=oneline --graph 以一行简洁的图形形式显示日志,适用于多分支
  8. git status 查看文件状态
    1. 新文件 untracked 未被跟踪,下一步是git add
      1. 意味着,git在之前的提交中没有这些文件
      2. git add ,告诉git我要跟踪这些文件 
    2. 新文件 stage 被追踪,待提交 ,下一步是git commit 
    3. 旧文件修改后,未暂存 changes not staged for commit 下一步git add 和commit
  9. git status -s 以简洁的格式查看状态
  10. 排除跟踪文件,.gitignore 文件里直接写不被跟踪的文件,支持通配符*.log
  11. git reset 版本回退,git 通过head指针指向该分支最后一次提交
    1. git reset --hard HEAD^ 回退到上一个版本
    2. git reset --hard HEAD^^ 上上个版本
    3. git reset --hard HEAD~100 上一百个版本
    4. git reset --hard [commint ID] 回退到指定的提交id所在的版本,id可以缩写,前提是唯一
  12. git clone 远程仓库地址,将远程仓库克隆到本地
  13. git push 将本地修改推送到远程仓库 --force 强制推送
  14. git remote -v 查看远程仓库的信息
  15. git remote add 自定义仓库名 远程地址 让本地与远程仓库连接连接
    1. git remote add origin http://www.gitee.com/xxx.git
    2. git brance --set-upstream-to=origin.master 设置本地分支与远程master分支绑定
    3. git pull 将远程获取到本地 (git fetch git merge)
    4. git merge --allow-unrelated-histories
    5. git push
  16. git branch 查看分支
  17. git ls-remote 查看远程分支
  18. git merge 合并分支
  19. 开源项目issue 用来收集用户的意见
  20. 克隆到本地的仓库可以重命名
  21. 开源许可协议:声明你可以用它做哪些事情
    1. 主要关注MIT许可证:允许修改源码后闭源,修改过的文档可不说明 BSD或MIT
      1. MIT , 衍生的产品,可以提到原源码的名字
      2. BSD ,衍生产品不允许用到原源码的名字
    2. 结论,MIT协议的开源项目,使用起来比较放心,不容易侵权
    3. 同理,我们自己创建的项目,也可使用MIT
  22. git tag v1.0.0 给文档打个标签,用来标记发布的结点 git tag 查看标签
    1. git tag v1.1.0 轻量标签
    2. git tag -a v1.2.0 -m '说明文字' 这是附注标签 。git show v1.2.0 可看详情
    3. git push origin v.1.1.0 将某标签推送到远程
    4. git push origin --tags 推送所有标签
    5. git tag -d v1.0.0 删除本地的标签
    6. git push origin -d v1.1.0 删除远程标签
    7. git checkout v1.1.0 切换到对应的标签
  23. git 默认是master分支
  24. git branch 新分支名,用来创建新分支 如git branch test
  25. git checkout test 检出到test分支
  26. git checkout -b test 等于24、25两步的结合,创建并检出到新分支

分支使用和合并分支的经典场景

当源码完成第一个版本时,即可打个tag,发布v1.0.1 并继续迭代开发,比如到第二个版本v2.0.0 

但有人反馈之前发布的1.0.1有bug,那我们就要在回到1.0.1检出个新分支,再修复后,合并到2.0.0

操作演示:

  1. git checkout v1.0.1  切回有bug的版本
  2. git checkout -b hotfix ,再此版本上新建一个分支hotfix
  3. git commit -a -m '修复bug' ,修复bug后提交到仓库
  4. git tag v1.0.2 ,打上新标签
  5. git checkout master 切回主分支
  6. git merge hotfix 将hotfix合并到当前分支(master)
    1. 有代码冲突
      1. <<<到=== 是当前分支的代码
      2. ===到>>> hotfix是要被合并进来的代码
    2. 解决方法:
      1. 手动,直接把<<<===>>>等删除
      2. 用IDE的功能
        1. 接受当前分支
        2. 接受合并来的分支
        3. 接受两者
        4. 比较不同
  7. git add .
  8. git commit -m "合并hotfix分支"

查看和删除分支

  • git branch 查看所有分支
  • git branch -v 同时查看最后一次提交
  • git branch --merged 查看所有合并到当前分支的分支
  • git branch --no-merged 查看所有没有合并到当前分支的分支
  • git branch -d hotfix 删除hotfix分支
  • git branch -D hotfix 强制删除分支

git的工作流

  • master 作为主分支 ,用来发布稳定版本
  • develop作为开发分支,当有稳定版本时,合并到master分支中
  • topic作为某一主题或功能或特性的分支进行开发,比如一些测试性的功能,开发完成后合并到develop分支中

合并远程分支

        远程分支也是一种分支结构,以 <remote>/<branch>的形式命名,例如:origin/master

假设远程有个main分支,本地有个master分支,两者如何关联?

  1. git init 
  2. git add .
  3. git commit -m "初始化项目"
  4. git remote add origin xxx  :将xxx远程仓库地址对应的仓库,命名为origin
  5. git fetch origin main 获取远程仓库中的main分支到本地,变成本地origin/main分支
  6. git branch --set-upstream-to=origin/main 将远程仓库的main分支与本地当前分支关联
  7. git merge --allow-unrelated-histories 允许无关联的分支合并
  8. git config push.default upstream 设置push的默认上游
  9. git push origin 分支名

另一种快捷方式:将上面第6步开始的步骤换成以下步骤

  1. git checkout --track origin/main   /  git checkout main
  2. git push

将本地分支推送成远程新分支

        例如本地当前分支为develop分支文章来源地址https://www.toymoban.com/news/detail-861628.html

  1. git push origin develop : 远程名 远程分支名 ,注意当前分支与远程分支要同名

删除远程分支

git push origin --delete 分支名

到了这里,关于使用git遇到的各种疑难杂症之解决办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Toaster - Android 吐司框架,专治 Toast 各种疑难杂症

    https://github.com/getActivity/Toaster 想了解实现原理的可以点击此链接查看:Toaster 源码 如果你的项目 Gradle 配置是在 7.0 以下,需要在 build.gradle 文件中加入 如果你的 Gradle 配置是 7.0 及以上,则需要在 settings.gradle 文件中加入 配置完远程仓库后,在项目 app 模块下的 build.gradle 文件

    2024年02月07日
    浏览(28)
  • Selenium 自动化高级操作与解决疑难杂症,如无法连接、使用代理等

    这里记录一些关于 Selenium 的常用操作和疑难杂症。 有一些细节的知识点就不重复介绍了,因为之前的文章中都有! 如果对本文中的知识点有疑问的,可以先阅读我以前分享的文章! 模块 链接 作用 selenium https://www.selenium.dev/zh-cn/documentation/ 支持 web 浏览器自动化的一系列工具

    2024年02月04日
    浏览(26)
  • 解决电脑连接HC-06出现的疑难杂症

    1.HC-06接电信号灯不亮 一开始用面包板,32单片机给HC-06供电,发现HC-06信号灯不亮。 考虑到供电稳定性的问题,暂时用ST-LINK给HC-06供电,信号灯开始闪烁。 2.使用CH340接HC-O6发送AT指令没反应 波特率初始默认9600,连接后发送框不要打回车,清空后再敲入AT发送,即可收到回复。

    2024年04月26日
    浏览(26)
  • docker使用指南&疑难杂症

    1 构建包不成功留下一堆废镜像和容器 none 如何清理? https://blog.csdn.net/catoop/article/details/91908719 2 docker0 ip没了怎么办? 容器stop(不确定是否必须,关上保险),重启docker,再start容器 问题:Dockerfile构建镜像,旧文件一点没动,结果执行到apt各种包会报找不到。returned a non-

    2024年01月19日
    浏览(27)
  • 【故障排查】10分钟解决Quartz重复调度的疑难杂症

    我司使用Apache DolphinScheduler作为调度框架很久了,感兴趣的小伙伴可以看看这些干货文章: 因为之前监控到会出现重复的调度的问题,所以此文记录排查重复调度问题的全过程,希望对社区其他的小伙伴能够起到抛砖引玉的作用! 注:本文使用的DolphinScheduler 3.1.1的版本。 数

    2024年03月18日
    浏览(26)
  • Python爬虫-requests.exceptions.SSLError: HTTPSConnectionPool疑难杂症解决(1)

    前言 本文是该专栏的第7篇,后面会持续分享python爬虫案例干货,记得关注。 在爬虫项目开发中,偶尔可能会遇到SSL验证问题“ requests.exceptions.SSLError: HTTPSConnectionPool (host=\\\'www.xxxxxx.com\\\', port=443): Max retries exceeded with url ... ”。亦或是验证之后的提示警告“ InsecureRequestWarning: Un

    2024年02月05日
    浏览(23)
  • [疑难杂症2023-004]停止服务器自动启动的服务,解决端口占用的问题

    本文由Markdown语法编辑器编辑完成。 前段时间,在linux上启动一个目录下的docker-compose.yml中的服务时,遇到了一个3000端口被占用的问题. 凭借经验,一般可能是之前的服务没被正常的停止掉,导致该服务占用的端口未被释放,导致新的服务无法启动。 但是通过运行以下命令

    2024年02月16日
    浏览(38)
  • 精通ES+ES大数据查询常见的疑难杂症的解决与实现

    目录  什么是BoolQueryBuilder? 简单的复合查询 RestHighLevelClient中的matchQuery与matchPhraseQuery与termQuery的在实际使用中的不同 ES是否能在类型为text的字段的内部使用keyword,如果能这样做的含义是什么? 什么是ES多字段? ES怎么实现聚合查询? RestHighLevelClient的subAggregation是什么?干什

    2024年02月07日
    浏览(20)
  • C#【疑难杂症篇】请考虑使用 app.config 将程序集“xxx“从版本“4.0.0.0”[xxx]重新映射到版本“4.0.1.0”[xxx],以解决冲突并消除警告。

    使用Visual Studio 2019编译一个C#程序时报如下警告: 注 :此警告并不会影响程序的正常运行,但要搞清楚其原因! 应该是有某个dll的两个版本,VS 建议使用新的。 我们以第一条来分析: 1 请考虑使用 app.config 将程序集“System.Collections.Concurrent, Culture=neutral,PublicKeyToken=b03f5f7f11

    2024年02月04日
    浏览(19)
  • 一文解决windows电脑端口被占用问题,专治疑难杂症和port xxxx was already in use 说再见

    使用windows开发的小伙伴肯定会经常遇到如下图这种情况,这个时候我们最简单的解决方案就是重启,一般重启就能搞定这个问题,但是吧每次重启需要开一大堆软件,比较麻烦,接下来我们将通过 2种方案 解决端口被占用的情况: 1.1 找出端口被哪个线程占用 1.2 查询这个进

    2024年02月08日
    浏览(28)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包