git面试题

文章目录

  • git经常用哪些指令
  • git出现代码冲突怎么解决
  • 你们团队是怎么管理git分支的
  • 如何实现Git的免密操作

git经常用哪些指令

  • 产生代码库

    • 新建一个git代码库

      • git init
        
    • 下载远程项目和它的整个代码历史

      • git clone 远程仓库地址
        
  • 配置

    • 显示配置

      • git config --list [--global]
        
    • 编辑配置

      • git config -e [--global]
        
    • 设置用户信息

      • git config [--global] user.name "名"
        git config [--global] user.email "邮箱地址"
        
  • 暂存区文件操作

    • 增加文件到暂存区

      • # 1.添加当前目录的所有文件到暂存区
        git add .
        # 2.添加指定目录到暂存区,包括子目录
        git add [dir]
        # 3.添加指定文件到暂存区
        git add [file1] [file2] ...
        
    • 在暂存区中删除文件

      • # 删除工作区文件,并且将这次删除放入暂存区
        git rm [file1] [file2] ...
        # 停止追踪指定文件,但该文件会保留在工作区
        git rm --cached [file]
        
    • 重命名暂存区文件

      • # 改名文件,并且将这个改名放入暂存区
        git mv [file-original] [file-renamed]
        
  • 代码提交

    • # 提交暂存区到仓库区
      git commit -m [message]
      
  • 分支操作

    • # 列出所有本地分支
      git branch# 列出所有远程分支
      git branch -r# 列出所有本地分支和远程分支
      git branch -a# 新建一个分支,但依然停留在当前分支
      git branch [branch-name]# 新建一个分支,并切换到该分支
      git checkout -b [branch]# 新建一个分支,指向指定commit
      git branch [branch] [commit]# 新建一个分支,与指定的远程分支建立追踪关系
      git branch --track [branch] [remote-branch]# 切换到指定分支,并更新工作区
      git checkout [branch-name]# 切换到上一个分支
      git checkout -# 建立追踪关系,在现有分支与指定的远程分支之间
      git branch --set-upstream [branch] [remote-branch]# 合并指定分支到当前分支
      git merge [branch]# 选择一个commit,合并进当前分支
      git cherry-pick [commit]# 删除分支
      git branch -d [branch-name]# 删除远程分支
      git push origin --delete [branch-name]
      git branch -dr [remote/branch]
      
  • 信息查看

    • # 显示有变更的文件
      git status# 显示当前分支的版本历史
      git log# 显示commit历史,以及每次commit发生变更的文件
      git log --stat# 搜索提交历史,根据关键词
      git log -S [keyword]# 显示某个commit之后的所有变动,每个commit占据一行
      git log [tag] HEAD --pretty=format:%s# 显示某个commit之后的所有变动,其"提交说明"必须符合搜索条件
      git log [tag] HEAD --grep feature# 显示过去5次提交
      git log -5 --pretty --oneline
      
  • 同步操作

    • # 增加一个新的远程仓库,并命名
      git remote add [shortname] [url]# 取回远程仓库的变化,并与本地分支合并
      git pull [remote] [branch]# 上传本地指定分支到远程仓库
      git push [remote] [branch]# 强行推送当前分支到远程仓库,即使有冲突
      git push [remote] --force# 推送所有分支到远程仓库
      git push [remote] --all
      
  • 撤销操作

    • # 恢复暂存区的指定文件到工作区
      git checkout [file]# 恢复某个commit的指定文件到暂存区和工作区
      git checkout [commit] [file]# 恢复暂存区的所有文件到工作区
      git checkout .# 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
      git reset [file]# 重置暂存区与工作区,与上一次commit保持一致
      git reset --hard# 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
      git reset [commit]# 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
      git reset --hard [commit]# 重置当前HEAD为指定commit,但保持暂存区和工作区不变
      git reset --keep [commit]# 新建一个commit,用来撤销指定commit
      # 后者的所有变化都将被前者抵消,并且应用到当前分支
      git revert [commit]
      

git出现代码冲突怎么解决

冲突合并一般是因为自己的本地做的提交和服务器上的提交有差异,并且这些差异中的文件改动,Git不能自动合并,那么就需要用户手动进行合并

如我这边执行git pull origin master

如果Git能够自动合并,那么过程看起来是这样的:

拉取的时候,Git自动合并,并产生了一次提交。

如果Git不能够自动合并,那么会提示:

这个时候我们就可以知道README.MD有冲突,需要我们手动解决,修改README.MD解决冲突:

可以看出来,在1+1=几的这行代码上产生了冲突,解决冲突的目标是保留期望存在的代码,这里保留1+1=2,然后保存退出。

退出之后,确保所有的冲突都得以解决,然后就可以使用:

git add .
git commit -m "fixed conflicts"
git push origin master`

即可完成一次冲突的合并。

整个过程看起来是这样的:

你们团队是怎么管理git分支的

关于Git分支管理,每个团队在不同阶段都有自己的管理策略。我们团队以前采用的是版本分支管理策略,也就是每次上线新版本都会创建一个新的版本分支,而新的需求开发也从当前最新的版本分支迁出一个新的需求分支开发,线上bug则在版本分支上修改然后发布。

如何实现Git的免密操作

现在的远程仓库都提供了基于SSH协议的Git服务,在使用SSH协议访问仓库之前,需要先配置好账户/仓库的SSH公钥。

① 产生公私钥对

ssh-keygen -t rsa -C cherish@cherish.pw

产生完毕后,公私玥对位于c/Users/用户名/.ssh/

  • id_rsa:私钥(私有的钥匙,不能公开)
  • id_rsa.pub:公钥(可以公开的钥匙)

② 将公钥上传至远程仓库个人中心的设置里

以gitee为例,添加公钥请访问:https://gitee.com/profile/sshkeys

注:如果想用现在的免密登录,请使用ssh协议去关联本地与线上仓库。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/74112.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kubernetes 使用 helm 部署 NFS Provisioner

文章目录 1. 介绍2. 预备条件3. 部署 nfs4. 部署 NFS subdir external provisioner4.1 集群配置 containerd 代理4.2 配置代理堡垒机通过 kubeconfig 部署 部署 MinIO添加仓库修改可配置项 访问nodepotingress 1. 介绍 NFS subdir external provisioner 使用现有且已配置的NFS…

设计模式再探——代理模式

目录 一、背景介绍二、思路&方案三、过程1.代理模式简介2.代理模式的类图3.代理模式代码4.代理模式还可以优化的地方5.代理模式的项目实战,优化后(只加了泛型方式,使用CGLIB的代理) 四、总结五、升华 一、背景介绍 最近在做产品过程中对于日志的统一…

2023年自然语言处理与信息检索国际会议(ECNLPIR 2023) | EI Compendex, Scopus双检索

会议简介 Brief Introduction 2023年自然语言处理与信息检索国际会议(ECNLPIR 2023) 会议时间:2023年9月22日-24日 召开地点:中国杭州 大会官网:ECNLPIR 2023-2023 Eurasian Conference on Natural Language Processing and Information Retr…

【机器学习】Cost Function for Logistic Regression

Cost Function for Logistic Regression 1. 平方差能否用于逻辑回归?2. 逻辑损失函数loss3. 损失函数cost附录 导入所需的库 import numpy as np %matplotlib widget import matplotlib.pyplot as plt from plt_logistic_loss import plt_logistic_cost, plt_two_…

自己实现MyBatis 底层机制--抽丝剥茧(上)

😀前言 本篇博文是学习过程中的笔记和对于MyBatis底层机制的分析思路,希望能够给您带来帮助😊 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到…

誉天程序员-瀑布模型-敏捷开发模型-DevOps模型比较

文章目录 2. 项目开发-开发方式2.1. 瀑布开发模型2.2. 敏捷开发模型2.3. DevOps开发模型2.4. 区别 自增主键策略1、数据库支持主键自增自增和uuid方案优缺点 2. 项目开发-开发方式 由传统的瀑布开发模型、敏捷开发模型,一跃升级到DevOps开发运维一体化开发模型。 …

IPv6 over IPv4隧道配置举例

配置IPv6 over IPv4手动隧道示例 组网需求 如图1所示,两台IPv6主机分别通过SwitchA和SwitchC与IPv4骨干网络连接,客户希望两台IPv6主机能通过IPv4骨干网互通。 图1 配置IPv6 over IPv4手动隧道组网图 配置思路 配置IPv6 over IPv4手动隧道的思路如下&…

【雕爷学编程】MicroPython动手做(10)——零基础学MaixPy之神经网络KPU2

KPU的基础架构 让我们回顾下经典神经网络的基础运算操作: 卷积(Convolution):1x1卷积,3x3卷积,5x5及更高的卷积 批归一化(Batch Normalization) 激活(Activate) 池化&…

单例模式(Singleton)

单例模式保证一个类仅有一个实例,并提供一个全局访问点来访问它,这个类称为单例类。可见,在实现单例模式时,除了保证一个类只能创建一个实例外,还需提供一个全局访问点。 Singleton is a creational design pattern t…

JavaScript场景应用:Canvas实战开发一个二维折线图插件

🏆作者简介,黑夜开发者,全栈领域新星创作者✌,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已…

VB6中FSO具体应用详解

文前申明:原文为通用版实例代码,本菜鸟在每例之后加入一个简单的实例(均验证通过),供有需要的朋友参考. 您正在看的VB教程是:VB入门基础认识VB的文件系统对象FSO。 在 VB 编程中经常需要和文件系统打交道,比如获取硬盘的剩余空间、判断文件夹或文件是否存在等。在…

认识主被动无人机遥感数据、预处理无人机遥感数据、定量估算农林植被关键性状、期刊论文插图精细制作与Appdesigner应用开发

目录 第一章、认识主被动无人机遥感数据 第二章、预处理无人机遥感数据 第三章、定量估算农林植被关键性状 第四章、期刊论文插图精细制作与Appdesigner应用开发 更多推荐 遥感技术作为一种空间大数据手段,能够从多时、多维、多地等角度,获取大量的…

PHP语言基础知识(超详细)

文章目录 前言第一章 PHP语言学习介绍 1.1 PHP部署安装环境1.2 PHP代码工具选择 第二章 PHP代码基本语法 2.1 PHP函数知识介绍2.2 PHP常量变量介绍 2.2.1 PHP变量知识:2.2.2 PHP常量知识: 2.3 PHP注释信息介绍2.4 PHP数据类型介绍 2.4.1 整形数据类型2.4…

基于量子同态的安全多方量子求和加密

摘要安全多方计算在经典密码学中一直扮演着重要的角色。量子同态加密(QHE)可以在不解密的情况下对加密数据进行计算。目前,大多数协议使用半诚实的第三方(TP)来保护参与者的秘密。我们使用量子同态加密方案代替TP来保护各方的隐私。在量子同态加密的基础上&#xff…

2023年自动化测试已成为标配?一篇彻底打通自动化测试...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 首先我们从招聘岗…

《面试1v1》ElasticSearch 和 Lucene

🍅 作者简介:王哥,CSDN2022博客总榜Top100🏆、博客专家💪 🍅 技术交流:定期更新Java硬核干货,不定期送书活动 🍅 王哥多年工作总结:Java学习路线总结&#xf…

智慧~经典开源项目数字孪生智慧商场——开源工程及源码

深圳南山某商场的工程和源码免费赠送,助您打造智慧商场。立即获取,提升商场管理效能! 项目介绍 凤凰商场作为南山地区的繁华商业中心,提供多样化的购物和娱乐体验。通过此项目,凤凰商场将迈向更智能的商业模式。 本项目…

基于SaaS模式的Java基层卫生健康云HIS系统源码【运维管理+运营管理+综合监管】

云HIS综合管理平台 一、模板管理 模板分为两种:病历模板和报表模板。模板管理是运营管理的核心组成部分,是基层卫生健康云中各医疗机构定制电子病历和报表的地方,各医疗机构可根据自身特点特色定制电子病历和报表,制作的电子病历…

Python-Python基础综合案例:数据可视化 - 折线图可视化

版本说明 当前版本号[20230729]。 版本修改说明20230729初版 目录 文章目录 版本说明目录知识总览图Python基础综合案例:数据可视化 - 折线图可视化json数据格式什么是jsonjson有什么用json格式数据转化Python数据和Json数据的相互转化 pyecharts模块介绍概况如何…

Golang 函数参数的传递方式 值传递,引用传递

基本介绍 我们在讲解函数注意事项和使用细节时,已经讲过值类型和引用类型了,这里我们再系统总结一下,因为这是重难点,值类型参数默认就是值传递,而引用类型参数默认就是引用传递。 两种传递方式(函数默认都…