Git 学习笔记

1、创建本地库,添加文件

1.1 创建本地库

        先用git跳转到对应的文件夹下,可以手动创建仓库文件夹,也可以在git中使用如下指令创建并跳转:

        mkdir filename

        cd filename

注:这里的filename为文件夹名

        随后输入指令:git init 将该文件夹变成Git可以管理的仓库

 1.2 添加文件

        指令:先a,后b

        a、git add filename ——将文件添加到暂存区

        b、git commit -m “annotation” ——将文件添加到工作区

注:这里的fliname带后缀。

        先将需要添加到本地库放在库文件夹中,如下readme.txt被添加。

         

2、git仓库的版本更新与回退,修改撤销等

       指令:

        git status  ——查看修改是否有效

        git diff ——比较修改

        git log ——查看版本

        

        

         将修改后的文件进行git add filename, git commit -m "annotation"后,再展示git status结果如下:

        

        使用git log查看提交信息

 2.1 版本回退

         指令

        git log ——查看提交日志

        git log --pretty=oneline ——查看简洁提交日志

        git reset --hard HEAD^ ——回退到上一提交版本

        git reset --hard <commit id> ——回退到特定版本,<commit id>为git log中展示的如下内容:

        

        git reflog ——查看当前仓库的所有提交记录,重启电脑后也能查询

注:提交版本的更改,实际上是用于指向当前版本的HEAD指针的指向改变 。

2.2  撤销修改

        情况1:只对文件进行了修改,还没有用git add filename将文件上传到暂存区。

        git checkout --filename ——撤销修改

        情况2:对文件进行了修改,且用git add filename将文件上传到暂存区了。

        git reset HEAD filenmae ——将暂存区的修改回退到工作区,HEAD表示回退到最新版本的filename文件,也可输入commit id回退到想要的版本

2.3 删除文件

        a、删除文件:

        直接手动删除,或使用指令rm filename进行删除。

        b、删除版本库文件:

        当文件使用git add,git commit -m提交后,依次输入如下指令对该文件进行删除:

        git rm filename

        git commit -m “annotation”

        c、使用版本库恢复误删除的文件:

        git checkout --filename 

 3、远程仓库

        需要掌握:

        1)将本机SSH码添加到远程仓库平台中,用于交互验证。

        2)添加远程库

        3)克隆远程库

          远程仓库 - 廖雪峰的官方网站 (liaoxuefeng.com)

3.1 添加远程库

        前提:创建好远程库。

        指令:

        git remoter add origin SSH码 —— 将本地仓库与远程仓库关联

        git branch -M branchname ——将远程仓库和本地仓库的主枝修改名称为branchname

        git push -u origin branchname ——将本地仓库的所有内容推送到远程仓库origin的branchname枝干中

        git push origin branchname ——本地提交内容后推送到远程仓库origin的branchname枝干中

        git remote -v ——查看远程库信息

        git remote rm origin ——删除名为origin的远程库

        注:origin为默认远程库名 。

3.2 从远程库克隆

        先将Git使用cd进入合适的文件位置,输入如下指令即可克隆远程库

        git clone git@github.com:lanweo/clonerepo.git

         注:git@github.com:lanweo/clonerepo.git为SSH码

4、分支管理

4.1 创建与合并分支

        创建分支相关

        git branch branchname ——创建branchname分支

        git checkout branchname ——切换到branchname分支

        git checkout -b branchname ——创建并切换到branchname分支

        git branch ——查看当前分支

        git merge branchname ——将branchname分支合并到主枝上

        git branch-d branchname ——删除branchname分支

         

        git switch branchname ——切换到branchname分支

        git switch -c branchname ——创建并切换到branchname分支

        

4.2 解决冲突

        当分支、主枝对同一文件修改了不同内容,并且进行了提交,在合并时会产生冲突。

        解决方法:

        使用vi filename查看文件,将标记中不同分支的内容修改为相同内容,再进行merge快速合并。

        注:

 4.3 bug分支

        指令:

        git stash ——将当前工作现场储存起来

        git stash aplply ——恢复之前的工作现场

        git stash drop ——删除之前储存的工作现场

        git stash pop ——在恢复的同时删除

        git cherry-pick <commit id> ——复制特定提交到分支

        情况:当前工作进行到了一半,还没有调用add,commit上传,出现了bug需要修复。

        步骤

        1) 用:git stash 将当前工作现场储存起来

        2) 切换到需要修复bug的分支,在该分支上创建并切换子枝。

        3) 在新建子枝文件bug修复后,回到原分支,进行合并,根据需求删除2的新建子枝。

        4) 用git stash aplply恢复之前的工作现场,再用git stash drop删除之前储存的工作现场,或直接用git stash pop在恢复的同时删除。

        由于此时恢复的工作现场也有bug,故还需要进行如下步骤:

        1)查看之前提交修复后的文件时,Git反馈的如下commit id,即下面的4c805e2。

        

        2)使用git cherry-pick 4c805e2复制特定提交到分支。

 4.4 删除分支

        在开发新功能时,最好新建一个分支,在该新分支上进行开发。

        在没合并前,可以用如下指令进行分支删除:

        git branch -d branchname ——删除branchname分支

        git branch -D branchname —— 强制删除branchname分支

4.5 多人协作

        git remote ——查看远程库

        git remote -v ——查看远程库详细信息

        注:远程仓库的默认名称是origin

        git push origin branchname ——将branchname分支上的本地提交推送到远程库中

        git checkout -b dev origin/dev ——创建远程origindev分支到本地

5、标签管理

        标签作用:替代commit id 进行一系列工作,解决commit id 难以阅读,记忆的问题。

        指令:

        git tag tagname —— 给当前所在分支添加一个名为tagname的标签名

        git tag ——查看所有标签

        git log --pretty=oneline --abbrev-commit ——查看所有提交的commit id

        git show tagname ——展示tagname标签信息

        git tag -a tagname -m “annotation” <commit id> ——创建带说明的标签

        git tag -d tagname ——删除标签tagname

        git push origin tagname ——推送tagname标签到远程

        git push origin tags ——推送所有未推送到远程的本地标签

        git push origin :refs/tags/tagname ——远程删除tagname标签,需要先删除本地tagname标签

        

        

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

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

相关文章

Centos7编译安装ffmpeg

1、准备工作&#xff0c;安装必要的环境 yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c git libtool make mercurial pkgconfig zlib-devel 2、创建目录 ffmpeg_sources 目录是下载软件包的目录 ffmpeg 目录是安装目录 mkdir /usr/local/ffmpeg_sour…

Git 上传Github 超时问题

提交代码到GitHub总是超时&#xff0c;偶尔会直接上传成功。 提供一下解决方案 1.首先找到网络 2. 找到代理 3. 把自动检查设置全部关闭&#xff0c;然后打开手动设置代理&#xff0c;然后输入ip地址和你代理的端口号&#xff0c;保存即可。 4. 最后使用git push origin mast…

2023-07-10:Kafka如何做到消息不丢失?

2023-07-10&#xff1a;Kafka如何做到消息不丢失&#xff1f; 答案2023-07-10&#xff1a; Kafka采用多种机制来确保消息的不丢失&#xff0c;其中包括副本机制、ISR&#xff08;In-Sync Replicas&#xff09;机制以及ACK机制等。 1.副本机制 Kafka通过副本机制来确保消息不…

Jtti:linux如何查看磁盘驱动器列表?

在Linux系统中&#xff0c;你可以使用以下命令之一来查看磁盘驱动器列表&#xff1a; 1.使用 fdisk 命令&#xff1a;运行以下命令来查看磁盘驱动器列表&#xff1a; 这会列出系统中所有的磁盘驱动器及其分区。 2.使用 lsblk 命令&#xff1a;运行以下命令来查看磁盘驱动器列表…

【WebSocket】SpringBoot整合WebSocket实现聊天室(一)

目录 一、准备 1、引入依赖 2、创建配置类 二、相关注解 一、准备 1、引入依赖 首先我们需要在项目中引入依赖&#xff0c;有两种方式。第一种我们可以在创建Spring Boot项目时搜索WebSocket然后勾选依赖 第二种是我们可以直接在项目的pom.xml文件中插入以下依赖 <dep…

springboot整合websocket遇到的小问题

今天尝试了通过springboot整合websocket来初步学习使用websocket&#xff0c;然后发现启动的时候报错了&#xff0c;发这篇文章分享一下。 springboot整合websocket的步骤很简单&#xff1a; 第一步&#xff1a;创建一个springboot项目&#xff0c;在这里命名为websocket 在I…

div绑定键盘点击事件

为箭头绑定绑定键盘方向键 <div class"toggle-nav"><spanv-if"leftToggleSt"click"toggleGoods(1)"keyup.left"toggleGoods(1)"class"toggle-left"><a-icon type"left" class"icon" /&…

CHI read trans flow

Read transactions with DMT and without snoops 对于不产生snoop的read trans&#xff0c;建议使用DMT功能&#xff0c;如下图所示&#xff1a; 注意点&#xff1a; a. SNF并不需要给HNF回响应&#xff0c;因为RN发送的compack可以释放HNF处记录的请求; Read transaction wi…

MATLAB|考虑自动重合闸与分布式能源的配电网可靠性评估研究

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【Leetcode】36. 有效的数独

一、题目 1、题目描述 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) 注意:…

Element-UI 在表单通过按钮动态增加Tree树形控件

文章目录 问题背景动态增加的Tree控件创建el-tree控件数据动态增加的el-tree控件编辑数据前需进行设置勾选状态新增/编辑请求前需转换格式 问题背景 在表单中动态增加的Tree控件中&#xff0c;注册一个 ref 引用&#xff0c;报错如下&#xff1a; this.$refs[‘showRegionsTre…

spring AOP中pointcut表达式详解

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是「奇点」&#xff0c;江湖人称 singularity。刚工作几年&#xff0c;想和大家一同进步&#x1f91d;&#x1f91d; 一位上进心十足的【Java ToB端大厂…