git 常用命令及遇到问题

news2024/7/4 5:56:26

        自己没事,把git常用命令做个记录总结。方便自己和初学者查看,本文针对初学者,如果你已经是工作多年高手,请跳过。

git的几个区认识,分别为工作区,缓存区,版本库。

工作区:包含.git文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码

暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方

 版本库:前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等

git基础命令         

       下面是一些基础常用命令,工程项目经常用到的。

git branch  /*查看当前分支是什么*/
git branch -a  /*查看所有分支是什么*/

git status /*查看当前哪些文件有变动*/

git log    /*查看提交log,替别留意commit id*/

git log --online /*简介显示,只显示commit msg*/
git log --online -3 /*简介显示,只显示3行commit msg*/

git blame   /*查看代码提交作者,甩锅时候必用*/



git show 28fc7d21eee632bd5e9ded1ca2eb861af7e45db7 --stat /*根据commit id 查看具体提交文件和内容*/

git reset --hard HEAD~1  /×删除本地库的最后一次提交×/

/*HEAD文件指向的branch就是当前branch.*/
git reset HEAD . /* 恢复到当前分支的最后一次提交记录,通俗讲,就是和最初clone的分支代码一致*/
git checkout 分支名  /* 用于切换分支*/
git checkout -b 分支名 /*用于创建分支并切换*/
git checkout .  /*会取消所有本地的修改(相对于暂存区)。相当于用暂存区的所有文件直接覆盖本地文件!*/
git checkout HEAD . /*会取消所有本地的修改(相对于暂存区)。相当于用暂存区的所有文件直接覆盖本地文件*/
git checkout package/libbus_box-2014-03-18/CMakeLists.txt /*恢复文件, 从*/

git diff    /*查看所有文件修改内容*/
git diff package/kebi2009/src/Server.c /*查看某一个修改文件内容*/

git lfs ls-file /*显示当前被 lfs 追踪的文件列表*/

git一次提交流程

        下面是一次完整的代码修改提交流程,需要对初学者有所帮助。

/*用户kobe2009,克隆alg代码,分支为master*/
git clone ssh://kobe2009@git.axin.com:29418/axinwifi/alg

/*创建V2100-1806分支,并且切换到V2100-1806*/
git checkout -b V2100-1806 origin/V2100-1806

/*切换到master*/
git checkout master

/*添加要提交文件*/
git add xxx.xxx.xxx
/*添加要删除文件*/
git rm  xx.xx.xx.xx

/*提交修改,这个时候会产生一个commit id,并且要写提交msg*/
git commit -s

/*pull远端V4-2.26.10代码到本地*/
git pull --rebase origin V4-2.26.10

/*提交本地修改到远端V4-2.26.10*/
git push origin HEAD:refs/for/V4-2.26.10

走完上面的流程,其实还没有正在的提交到代码仓库,这时候会有一个review流程,如果review通过,进行merge,这样就真的吧代码提交完成了。不过这里可能有冲突,需要手动处理了。

发现还需要修改继续提交

/*这个命令使用是在同一个提交,不改变commit id情况下,修改代码。其实就是上一次提交reveiw,需要修改使用下面命令。*/
git commit --amend

/*同步一下代码*/
git pull --rebase origin V4-2.26.10

/*提交代码*/
git push origin HEAD:refs/for/V4-2.26.10

git cherry-pick方法

/*代码切换到主分支*/ 
git checkout master

/*把commit id 2715bf182d89f0bef7af5f8d4d7dc40a1e0a02a7,cherry-pick 到master分支 */
git cherry-pick 2715bf182d89f0bef7af5f8d4d7dc40a1e0a02a7

/*查看同步过来的修改文件*/
git status

/*假设修改的是dhcpxx.conf*/
vi package/dhcpxx.conf
/*添加文件,准备提交*/
git add package/dhcpxx.conf

如果这时候报冲突,手动修改冲突。------->有机会把冲突的错误列一下,更容易理解。

中间如果发现冲突,解决冲突,然后继续提交。
git cherry-pick --continue

git pull --rebase origin master
git push origin HEAD:refs/for/master
git commit --amend
git push origin HEAD:refs/for/master

git相关工具

gitk 这个工具需要单独安装,查看提交内容和版本分支变化。

repo 还没理解透,因为我用的少

svn常用命令

        很多年前,使用svn管理过一段时间代码,因此积累一些svn 常用命令。

#svn的使用
#svn ls http://192.168.1.199/uhfgww  --usename 
--kobe2009 --password  --kobe2009
#显示当前文件夹内的所有文件。
#svn 
status
#svn 
--version
#svn 
info 显示svn相关的信息
#svn commit  -F 
SvnText.txt   --username  kobe2009  
--password  kobe2009
#提交文件,并且附上相关的文件说明。
#svn 
update 更新文件
#svn checkout http://192.168.1.199/uhfgww/trunk/
-username kobe2009 –password kobe2009  下载truck下的文件。
#svn 
add  xxx.txt添加新的文件
#

问题及困惑

  • gerrit和gitlib代码管理区别是什么
  • svn和git的各自优势是什么

注意事项

        gerrit github gitlib几个概念不要混淆,是不一样的东西。

        上面可能有写的不准确地方,请指正,再修改。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

靶机精讲:BNE0x03Simple

主机发现 nmap扫描 端口扫描 服务扫描 脚本扫描 第二十页路径有目录 web渗透 搜索该版本漏洞 CuteCMS漏洞利用 下载下来 查看文件,发现是远程文件上传漏洞 按步骤进行注册 点进去 构造利用文件,反弹shell 最后语法错误应为0>1 尝试上传 根据漏洞扫…

实验04:图像压缩(DP算法)

1.实验目的: 掌握动态规划算法的基本思想以及用它解决问题的一般技巧。运用所熟悉的编程工具,运用动态规划的思想来求解图像压缩问题。 2.实验内容: 给定一幅图像,求解最佳压缩,使得压缩后的文件最小。 3.实验要求…

容易忽视的细节:Log4j 配置导致的零点接口严重超时

作者:vivo 互联网服务器团队- Jiang Ye 本文详细的记录了一次0点接口严重超时的问题排查经历。本文以作者自身视角极具代入感的描绘了从问题定位到具体的问题排查过程,并通过根因分析并最终解决问题。整个过程需要清晰的问题排查思路和丰富的问题处理经验…

大话数据结构-查找

1 查找概论 查找表(Search Table)是由同一类型的数据元素(或记录)构成的集合,如下所示:   关键字(Key)是数据元素中某个数据项的值,又称为键值,用它可以标…

LiteFlow规则引擎的入门

文章目录 1、LiteFlow简介2、解决的痛点3、快速开始3.1 引入依赖3.2 配置规则文件的位置3.3 定义组件3.4 指定规则3.5 编写客户端3.6 运行以及说明3.7 其他的组件 4、对于快速开始的思考5、LiteFlow的脚本组件5.1 脚本的定义5.2 脚本的使用5.3 关于脚本使用的思考 6、规则引擎的…

开源Qt Ribbon控件——SARibbon的布局思路及介绍

开源Qt Ribbon控件——SARibbon的布局思路及介绍 SARibbon的布局SARibbon名词定义Office布局模式——SARibbonBar::OfficeStyleWPS布局模式——SARibbonBar::WpsLiteStylepannel的布局行数3行模式2行模式 原文链接:https://blog.csdn.net/czyt1988/article/details/…

scala之基础面向对象

scala 既是面向对象 也是函数式编程 从Java 发展而来,依赖JVM环境 一、 scala 在linux中运行 scala 模式中直接编写运行 scala文件,load执行 scala编译程序 编译 运行 scala java 二、scala 数据类型 基础数据类型 val 不可变变量 函数式编程 …

Excel使用频率超高的20个函数,90%你没用过

上班必学必会的Excel函数,不仅是使用频率最大的,还是告别加班的利器。你会的函数越多,解决问题的思路越广,不再束手束脚。态度决定高度,细节决定成败。要想比别人更优秀,只有在每一件小事上比功夫。 组合、…

json-c交叉编译及库移植

编译后的文件 json-c交叉编译及库移植资源-CSDN文库 json-c开源库是一个用c实现的解析json字段的库,嵌入式领域比较实用的库。 由于应用程序需要,需要找移植这个json-c库,所以这里对该库的移植做个简单说明 json-c开源库是一个用c实现的解…

python基于机器学习模型开发实践kaggle旧金山犯罪案件分类预测模型

旧金山犯罪案件分类本质是一个文本的多分类任务,kaggle官网地址在这里,如下所示: 本文主要是以kaggle比赛数据集为基准,开发实践文本多分类任务。 比赛背景 从 1934 年到 1963 年,旧金山因高犯罪率而臭名昭著。时至今…

opengl绘制三角形

1.绘制两个三角形 GLfloat vertices1[] { 0.5f, 0.5f, 0.0f, 0.5f, -0.5f, 0.0f, -0.5f, 0.5f, 0.0f } GLfloat vertices2[] { 0.5f, -0.5f, 0.0f, -0.5f, 0.5f, 0.0f, -0.5f, -0.5f, 0.0f } 也可以用索引的方式: GLfloat vertices[] { 0.5f, 0.5f, 0…

并发编程常见问题复盘

并发编程常见问题复盘 大家好,我是易安! 并发编程在计算机科学领域占有举足轻重的地位,它使得程序能够在多个处理器核心上同时执行,从而显著提升程序的性能。然而,并发编程也伴随着许多挑战和问题。这些年来&#xff0…

eacharjs饼状图带百分比

var myChart1 echarts.init(document.getElementById(main1)); myChart1.setOption({title:{text:近30天异常停机的类型TOP5,x:center,y:10px,// textStyle:{// fontSize:12// }},tooltip: {trigger: item//提示 鼠标移动上去},// legend: { // 上面的提示// top: 25%…

端口映射工具PortTunnel

PortTunnel应该是目前最好的端口转发器、端口映射工具(它解决了内外网访问的问题) 可以在我的资源中下载:https://download.csdn.net/download/qq_39569480/87717704 使用该工具前应该保证双方机器网络互通 下面我们模拟一下环境 比如现在有三台机器 A&#xff1a…

Mac环境SpringBoot项目Docker部署(独家完整版)

一、Docker 简介 Docker 是一种开源的容器化平台,允许开发人员将应用程序和所有其依赖项打包成轻量级、可移植的容器,以便在任何地方运行。Docker 的优势和劣势分析如下: 优势: 轻量级:Docker 容器仅包含应用程序及其依赖项,因…

家庭智能吸顶灯一Homekit智能

买灯要看什么因素 好灯具的灯光可以说是家居的“魔术师”,除了实用的照明功能外,对细节的把控也非常到位。那么该如何选到一款各方面合适的灯呢? 照度 可以简单理解为清晰度,复杂点套公式来说照度光通量(亮度&#x…

【社区图书馆】二、LED子系统——硬件驱动层

个人主页:董哥聊技术 我是董哥,嵌入式领域新星创作者 创作理念:专注分享高质量嵌入式文章,让大家读有所得! 文章目录 1、gpio_led_probe分析1.1 相关数据结构1.1.1 gpio_led_platform_data1.1.2 gpio_leds_priv 1.2 实…

Nextjs 处理 css3 前缀兼容

Nextjs 处理 css3 前缀兼容 虽然css3现在浏览器支持率已经很高了, 但有时候需要兼容一些低版本浏览器,需要给css3加前缀,可以借助插件来自动加前缀, postcss-loader就是来给css3加浏览器前缀的,安装依赖: npm i postcss-loader autoprefixer -Dpostcss-loader&…

前端使用国密SM4进行加密、解密

目录 需求【方法1】 - 使用 sm4util 依赖【方法2】sm4.js引入1. /public/sm4.js2. body 标签上引入该文件3. 使用 - ECB 模式加密 【方法3】1. 本地写 js 文件2. 使用 - ECB 模式加解密 需求 前端/后端使用 国密SM4 进行加密/解密, 【注意】前后端配合加解密时&…

06期:使用 OPTIMIZER_TRACE 窥探 MySQL 索引选择的秘密

这里记录的是学习分享内容,文章维护在 Github:studeyang/leanrning-share。 优化查询语句的性能是 MySQL 数据库管理中的一个重要方面。在优化查询性能时,选择正确的索引对于减少查询的响应时间和提高系统性能至关重要。但是,如何…