Git常用命令复习笔记

news2025/1/16 21:18:33

1. Git与SVN区别,各自优缺点

Git:

  1. 分布式,每个参与开发的人的电脑上都有一个完整的仓库,不担心硬盘出问题;
  2. 在不联网的情况下,照样可以提交到本地仓库,可以查看以往的所有log,等到有网的时候,push到远程即可
  3. 非常强大的分支管理功能
  4. Git的内容的完整性要优于SVN: GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

SVN:

  1. 集中式,如果中心服务器出现问题,所有人都不能正常干活,恢复也很麻烦,因为SVN记录的是每次改动的差异,不是完整文件;
  2. 分支功能没有git强大;
  3. 速度没有git快,如果有五个分支,是把五个分支的文件全部拷下来;
  4. 必须联网才能commit

2. 常用命令

#新增文件的命令:
git add file或者git add
#提交文件的命令:
git commit -m或者git commit -a
#查看工作去状况:
git status -s
#拉取合并远程分支的操作:
git fetch/git merge或者git pull
#查看提交记录命令:
git reflog
#下载远程代码命令:
git clone [url]
#新建一个分支,并切换到该分支:
git checkout -b [branch]
#查看修改的文件:
git status
#添加当前目录的所有文件到暂存区:
git add
#提交暂存区到仓库区:
git commit -m[message]
#取回远程仓库的变化,并与本地分支合并:
git pull [remote]
#上传本地指定分支到远程仓库:git push [remote]
#删除分支:
git branch -d [branch-name]
#删除远程分支:git push origin --delete [branch-name] 或
git branch -dr [remote/branch]
#暂时将未提交的变化移除,稍后再移入
git stash 或
git stash pop

在这里插入图片描述

3.提交时发生冲突,冲突是如何产生的吗?你是如何解决的?

开发过程中,我们都有自己的特性分支,所以冲突发生的并不多,但也碰到过。诸如公共类的公共方法,我和别人同时修改同一个文件,他提交后我再提交就会报冲突的错误。

使用命令解决:

  • 通过git stash命令,把工作区的修改提交到栈区,目的是保存工作区的修改;
  • 通过git pull命令,拉取远程分支上的代码并合并到本地分支,目的是消除冲突;
  • 通过git stash pop命令,把保存在栈区的修改部分合并到最新的工作空间中;

如果想撤销提交到索引区的文件,可以通过git reset HEAD file

3. git fetch和git pull命令之间的区别

简单来说:git fetch branch是把名为branch的远程分支拉取到本地;而git pull branch是在fetch的基础上,把branch分支与当前分支进行merge;因此pull = fetch + merge。

4. git stash命令一般什么情况下会使用它?

解决冲突文件时,会先执行git stash把当前工作区的文件先放入栈中,然后解决冲突;
遇到紧急开发任务但目前任务不能提交时,会先执行git stash,然后进行紧急任务的开发,然后通过git stash pop取出栈区的内容继续开发
切换分支时,当前工作空间内容不能提交时,会先执行git stash再进行分支切换;

5. git merge和git rebase的区别?

merge会形成一个四边形,产生一个新的commit,就是一次新的提交,把develop分之带过来了;
rebase抛开commidid的变化,就相当于develop从没出现过一样,按顺序在master新提交一遍;

建议使用merge,保留原分支变更,master就是一次一次的merge,gitk命令可以很直观的看到,或平台网页端网络图那里更好看,什么时候合并了一个feture。rebase后看总图,会有很多重复提交;
否则分支的意义是什么?我一直只commit,不push,也不pull,最后push也和rebase后效果一样;
若临时分支会删掉,可以考虑rebase。

6. git cherry-pick有什么作用

命令git cherry-pick可以把branch A的commit复制到branch B上。
在branch B上进行命令操作:

复制单个提交:git cherry-pick commitId
复制多个提交:git cherry-pick commitId1…commitId3
注意:复制多个提交的命令不包含commitId1.

7. github

Github 是一个基于git实现在线代码托管的仓库,向互联网开放,共有仓库免费,建立私有仓库要收费,因为Github的初衷就是为了大家共享自己的劳动成果。

8. gitlab

github和gitlab都是基于git仓库的web开发流程代码托管平台。两者的区别是github有私有仓库和共有仓库,私有仓库一般收费,gitlab打破这种限制,可以免费搭建私有仓库,并且可以部署在自己的服务器上。gitlab不仅有github的功能,还有更多的优秀特性,比如权限设置。一般企业内部软件产品用gitlab是更好的选择,如果是开源产品,一般放在github上。

9. GitHub、GitLab 不同点:

1、GitHub如果使用私有仓库,是需要付费的,GitLab可以在上面搭建私人的免费仓库。
2、GitLab让开发团队对他们的代码仓库拥有更多的控制,相对于GitHub,它有不少的特色:

  • (1)允许免费设置仓库权限
  • (2)允许用户选择分享一个project的部分代码
  • (3)允许用户设置project的获取权限,进一步提升安全性
  • (4)可以设置获取到团队整体的改进进度
  • (5)通过innersourcing让不在权限范围内的人访问不到该资源

github 是一个基于git实现在线代码托管的仓库,向互联网开放,企业版要收钱。
gitee 即码云,是 oschina 免费给企业用的,不用自己搭建环境。
gitlab 类似 github,一般用于在企业内搭建git私服,要自己搭环境。

第一,github针对企业要收费,那当然是不同意,毕竟都想节约资金,那就还能使用gitee,或者gitlab了
第二,但是码云虽然是免费的,而且不用自己搭环境,但是企业中把项目放在别人的服务器上,始终没有安全感
第三,因此,衍生出了gitlab,就是用于企业搭私服,而且还是在自己的服务器上

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

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

相关文章

数据结构刷题(十七):530二叉搜索树最小绝对差、501二叉搜索树中的众数、236二叉树的最近公共祖先、235二叉搜索树的最近公共祖先

一、二叉搜索树的最小绝对差题目链接思路&#xff1a; 中序遍历保留为list for循环找最小绝对差二叉搜索树中序遍历后是有序的数组&#xff01;&#xff01;注意&#xff1a;i 1开始遍历解法&#xff1a;public int getMinimumDifference(TreeNode root) {List<Integer>…

【C++升级之路】第八篇:string类

&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f; &#x1f36d;&#x1f36d;系列专栏&#xff1a;【C学习与应用】 ✒️✒️本篇内容&#xff1a;简单介绍string类的概念、string类的常用接口、string类的模拟实现&#xff08;各个常见接口的实现代码&…

初识数据结构——“数据结构与算法”

各位CSDN的uu们你们好呀&#xff0c;今天小雅兰进入一个全新的内容的学习&#xff0c;就是算法和数据结构啦&#xff0c;话不多说&#xff0c;让我们进入数据结构的世界吧 什么是数据结构&#xff1f; 什么是算法&#xff1f; 数据结构和算法的重要性 如何学好数据结构和算…

【开发者思维】优秀开发者应该具备的25个思维习惯

目录 1. 认真思考开发软件的目的 2. 明确软件设计的目标 3. 正确理解工作 4. 保持简洁 5. 控制复杂度 6. 软件维护 7. 保持一致 8. 优先级评测 9. 解决问题 10. 追求优秀即可 11. 预测

【MySQL中有哪些存储引擎?请你说说MySQL中innodb和myisam的区别?InnoDB引擎的三大特性?】

一.MySQL中有哪些存储引擎&#xff1f; InnoDB存储引擎 InnoDB是MySQL的默认事务型引擎&#xff0c;也是最重要、使用最广泛的存储引擎。它被设计用来处理大量的短期(short-lived)事务&#xff0c;应该优先考虑InnoDB引擎。MylSAM存储引擎 在MySQL 5.1及之前的版本&#xff0c…

PingCode 第三届开发者大会成功举办

PingCode 开发者大会或许会迟到&#xff0c;但永远不会缺席。原定于2022年10月24日举办的 “PingCode 开发者大会” 因疫情原因推迟&#xff0c;属于2022年 PingCode 开发者们的新知创想&#xff0c;不得不藏器待时。2023新春伊始&#xff0c;万象更新&#xff0c;伴随着万物逐…

不写代码、年薪百万,带你玩赚ChatGPT提示工程-高级提示

文章目录前言一、Zero-Shot提示二、Few-Shot 提示Few-shot Prompting 的局限性三、Chain-of-Thought Prompting四、Zero-Shot CoT五、Self-Consistency六、Generated Knowledge 提示七、Automatic Prompt Engineer (APE)总结前言 随着ChatGPT的大火&#xff0c;提示工程在大模…

按键修改阈值功能、报警功能、空气质量功能实现

按键修改阈值功能 要使用按键&#xff0c;首先要定义按键。通过查阅资料&#xff0c;可知按键的引脚如图所示&#xff1a;按键1&#xff08;S1&#xff09;通过KEY0与PA0连接&#xff0c;按键2&#xff08;S2&#xff09;通过KEY1与PE2连接&#xff0c;按键3&#xff08;S3&…

成本降低90%,OpenAI正式开放ChαtGΡΤ

今天凌晨&#xff0c;OpenAI官方发布ChαtGΡΤ和Whisper的接囗&#xff0c;开发人员现在可以通过API使用最新的文本生成和语音转文本功能。OpenAI称&#xff1a;通过一系列系统级优化&#xff0c;自去年12月以来&#xff0c;ChαtGΡΤ的成本降低了90%&#xff1b;现在OpenAI用…

供应链依赖:您的GitHub连接可能会触发什么?

不祥之兆&#xff0c;在针对 GitHub 存储库的攻击激增之后&#xff0c;很难避免。 最近的CircleCI漏洞&#xff08;客户的机密和加密密钥被盗&#xff09;清楚地表明&#xff0c;攻击者已经了解并利用了这个向量。 现在比以往任何时候都更需要公司保护这些非人类连接&#xf…

记录2023.3.3下午的校招

文章目录一、校招的总览意义&#x1f60e;二、校招时&#xff0c;公司是怎么做的&#xff1f;如何提问的&#xff1f;我又是怎么回答的&#x1f914;2.1 公司最喜欢提问你的问题&#x1f64c;三、校招期间&#xff0c;我应该如何去了解一家企业&#xff1f;&#x1f600;三、建…

LeetCode 982. 按位与为零的三元组 -- 哈希统计

按位与为零的三元组 困难 101 相关企业 给你一个整数数组 nums &#xff0c;返回其中 按位与三元组 的数目。 按位与三元组 是由下标 (i, j, k) 组成的三元组&#xff0c;并满足下述全部条件&#xff1a; 0 < i < nums.length 0 < j < nums.length 0 < k <…

【C++笔记】异常处理

C语言处理错误的方式 传统的错误处理机制&#xff1a; 1.终止程序缺陷&#xff1a;用户难以接受。 2.返回错误码&#xff1a;缺陷&#xff1a;需要自己去查错误码对应的解释。 C语言一般使用错误码来处理错误&#xff0c;部分情况下才会用终止情况处理处理严重的错误。 C异常…

初识Liunx下的进程状态和环境变量以及进程优先级

文章目录前言1.进程状态1.阻塞与挂起2.Linux下的进程状态1.概念知识2.R状态2.休眠状态(S/D&#xff09;3.T状态4.Z状态(僵尸进程)和X状态5.孤儿进程3.环境变量1.概念2.获取环境变量1.环境变量表2.函数获取环境变量3.关于环境变量的理解和main函数中的两个参数1.环境变量的理解2…

学习笔记--目标检测基础知识大全

来源&#xff1a;投稿 作者&#xff1a;LSC 编辑&#xff1a;学姐 目录 1.特点 2.数据集 2.1 VOCS数据集 2.2 COCO数据集 3.评价指标 3.1 GroundTruth 3.2 IOU(交并比&#xff0c;Intersection over Union) 3.3 基本指标 3.4 AP与mAp 3.5 案例演示 4. 脑图&#xff…

代码规范----编程规约(下)

目录 四、OOP规约 五、日期时间 六、集合处理 四、OOP规约 &#xff08;1&#xff09;、避免通过一个类的对象引用访问此类的静态变量或静态方法&#xff0c;无谓增加编译器解析成本&#xff0c;直接用类名来访问即可 &#xff08;2&#xff09;、所有的覆写方法&#xff0…

【C语言学习笔记】:二级指针

指针可以指向一个普通类型的数据&#xff0c;例如 int、double、char 等&#xff0c;也可以指向一个指针类型的数据&#xff0c;例如 int *、double *、char * 等。 如果一个指针指向的是另外一个指针&#xff0c;我们就称它为二级指针&#xff0c;或者指向指针的指针。 假设…

Leetcode.2017 网格游戏

题目链接 Leetcode.2017 网格游戏 Rating &#xff1a; 1719 题目描述 给你一个下标从 0 开始的二维数组 grid&#xff0c;数组大小为 2 x n&#xff0c;其中 grid[r][c]表示矩阵中 (r, c)位置上的点数。现在有两个机器人正在矩阵上参与一场游戏。 两个机器人初始位置都是 (0…

带你看懂RuoYi动态数据源切换

文章目录数据源是什么一、spring中是如何处理各种数据源的&#xff1f;1.开搞springboot2.创建一个测试类二、有了如上的理论,那么想想动态切换数据源吧参考若依的动态数据源配置总结数据源是什么 数据源,对于java来说,就是可用的数据库,那么我平时开发的springboot springclo…

算机网络安全基础知识5:sql注入漏洞攻击,DVWA演示sql注入漏洞,如何利用sql注入查看数据库信息,sqlmap,sql注入漏洞的防御

算机网络安全基础知识5:sql注入漏洞攻击&#xff0c;DVWA演示sql注入漏洞&#xff0c;如何利用sql注入查看数据库信息&#xff0c;sqlmap&#xff0c;sql注入漏洞的防御 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能…