GIT使用教程(超详细)

目录

前言

1 git安装

2 增加git账户

3 git全局参数配置

4 创建本地仓库 

5 关联远程分支 

6 删除远程分支关联 

7. 删除分支

8 git stash 

9 git reset 

10 git checkout 

11 合并

12 git log

13 git提交模板 


  •  🎈个人主页🎈:linux_嵌入式大师之路的博客-CSDN博客
  • 🎉🎉🎉欢迎 👍点赞✍评论⭐收藏
  • 🤝希望本文能对你有所帮助,欢迎在评论区交流讨论!🤝

前言

Git是一个免费的分布式版本控制系统,最初由Linus Torvalds开发用于管理Linux内核代码。

下面是一些关于Git的关键点:

  1. 分布式版本控制系统:与集中式版本控制系统不同,Git的每个用户都拥有完整的代码仓库副本,这意味着即使离线,仍然可以继续进行代码管理和更改。
  2. 版本控制:Git可以记录文件的每个版本和修改,可以轻松地查看和比较不同版本之间的差异。
  3. 分支管理:Git非常强大的特性之一是分支管理。它允许创建不同的分支来独立开发功能或修复问题,而不会对主分支造成影响。分支可以合并回主分支,以获得最新的更新。
  4. 团队协作:Git允许多人同时在同一个项目上工作。可以将自己的更改推送到共享的代码仓库,并从其他人那里获取他们的更改,从而实现协同开发。
  5. 提交和推送:Git使用提交(commit)来保存代码的更改,可以包含有关更改的注释以便他人理解本次提交。推送(push)将本次提交上传到共享的代码仓库。
  6. 分布式存储:Git使用SHA-1散列算法对文件进行唯一标识和存储,这意味着即使自己的代码仓库出现故障,仍然可以通过克隆远程仓库来恢复所有历史记录和更改。

总之,Git是一个强大而灵活的版本控制系统,适用于个人开发者和团队协作,使版本控制和代码管理变得更加简单和可靠。

1 git安装

sudo apt-get install git-core openssh-server openssh-client

2 增加git账户

sudo useradd -m git 
sudo passwd git  

3 git全局参数配置

/*去掉diff时文件权限的差异*/
git config --add core.filemode false
/*去掉diff时换行符的差异*/
git config --global core.whitespace cr-at-eol

4 创建本地仓库 

 cd /home/work/test
 git init 
 git add .
 git commit . -m "a commit message"

5 关联远程分支 

将本地分支关联到远程分支上
git remote add origin git@10.8.0.3:test/test.git
第一次推送版本
git push --set-upstream origin master  
非初次提交
git push origin master

6 删除远程分支关联 

查看远程分支

git branch -r

git remote rm origin

7. 删除分支

  • 利用“git branch --delete dev”命令删除本地分支;
  • 利用“git push origin --delete branch”命令删除远程分支;
  • 利用“git branch --delete --remotes  远程分支”命令删除追踪分支,该操作并没有真正删除远程分支,而是删除的本地分支和远程分支的关联关系,即追踪分支

8 git stash 

/*保存当前工作进度,会把暂存区和工作区的改动保存起来。执行完这个命令后,在运行git status命令,就会发现当前是一个干净的工作区,没有任何改动。使用git stash save 'message...'可以添加一些注释*/
git stash
/*显示保存进度的列表。也就意味着,git stash命令可以多次执行*/
git stash list
/*恢复,通过git stash pop命令恢复进度后,会删除当前进度*/
git stash pop [–index] [stash_id]
git stash pop             //恢复最新的进度到工作区。git默认会把工作区和暂存区的改动都恢复到工作区。
git stash pop --index         //恢复最新的进度到工作区和暂存区。(尝试将原来暂存区的改动还恢复到暂存区)
git stash pop stash@{1}        //恢复指定的进度到工作区。stash_id是通过git stash list命令得到的 
/*除了不删除恢复的进度之外,其余和git stash pop 命令一样*/
git stash apply [–index] [stash_id]
/*删除一个存储的进度。如果不指定stash_id,则默认删除最新的存储进度*/
git stash drop [stash_id]
/*删除所有存储的进度*/
git stash clear

9 git reset 

撤回到暂存区
git reset HEAD filename 撤回指定文件
git reset .  撤回所有文件,注意后面还有个.
git reset --hard HEAD  硬复位,丢弃当前所有修改,分支复位到HEAD
git reset --soft HEAD  软复位,所有修改存放到暂存区,分支复位到HEAD

注意:reset 如果不加参数,那么默认使用 --mixed 参数。它的行为是:保留工作目录,并且清空暂存区。也就是说,工作目录的修改、暂存区的内容以及由 reset 所导致的新的文件差异,都会被放进工作目录。简而言之,就是「把所有差异都混合(mixed)放在工作目录中」。

10 git checkout 

git checkout命令用于切换分支或恢复工作树文件。git checkout是git最常用的命令之一,同时也是一个很危险的命令,因为这条命令会重写工作区 。

切换分支:

本地分支切换
git checkout  分支名 
切换远程分支同时创建本地分支
git checkout -b 创建的本地分支名 远程分支名

 恢复工作区文件

恢复该目录下所有文件,和HEAD指向的位置保持一致
git checkout .
恢复指定文件
git checkout test.cpp 

11 合并

切换到主分支,执行git merge 次分支, 则次分支合并到主分支上。

12 git log

git log命令用于显示提交日志信息。

显示全部的版本历史
git log
显示整个提交历史记录,但跳过合并
git log --no-merges
查询ID之前的记录,包含commit 
git log commit_id  
查询commit1与commit2之间的记录,包括commit1和commit2  
git log commit1_id commit2_id 
显示每个版本修改的文件
git log --stat
显示每个版本具体的修改
git log -p

13 git提交模板 

/*设置模板
git config commit.template   绝对路径/[模板文件名]    //这个命令只能设置当前分支的提交模板
git config  — —global commit.template   绝对路径/[模板文件名]    //这个命令能设置全局的提交模板,注意global前面是两杠
例如:    
    git config commit.template   绝对路径/xxx_template
    git config --global commit.template   绝对路径/xxx_template
          
/*设置文本编辑器,命令如下:
git config --global core.editor  [编辑器名字]
例如:git config --global core.editor vi

/*编辑模板提交代码,命令如下
git  commit

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

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

相关文章

14家展商集中亮相!8月30-31日,智能汽车软件与座舱车联大会

过去几年,在特斯拉及新势力的带动下,车企的盈利模式正在寻求从“一次售卖”转变为“硬件预埋+软件付费解锁”,背后是驱动汽车软件架构的迭代,即从面向信号的软件架构,过渡至面向服务的SOA架构。 同时&#…

Flutter小功能实现-咖啡店

1 导航栏实现 效果图: 1.Package google_nav_bar: ^5.0.6 使用文档: google_nav_bar | Flutter Package 2.Code //MyBottomNavBar class MyBottomNavBar extends StatelessWidget {void Function(int)? onTabChange;MyBottomNavBar({super.key, …

JVM下篇知识

第01章:概述篇 第02章:JVM监控及诊断工具-命令行篇 第03章:JVM监控及诊断工具-GUI篇 第04章:JVM运行时参数 第05章:分析GC日志

Apple Configurator iphone ipad 设备管控 描述文件使用方法

一、准备 App Store 下载安装 Apple Configurator 二、Apple Configurator 注册组织, -----------这个组织可以是个人,或者其它组织导出-------再导入进来: 三、描述文件配置:“” 根据管控需求进行配置 “” 四、使用 Ap…

Docker consul容器服务自动发现和更新

目录 一、什么是服务注册与发现 二、Docker-consul集群 1.Docker-consul 2.registrator 3.Consul-template 三、Docker-consul实现过程 四、Docker-consul集群配置 1.下载consul服务 2.web服务器启动多例nginx容器,使用registrator自动发现 3.使用…

vant2 van-calendar组件增加清除按钮和确定按钮

利用自定义插槽增加一个清除按钮 <van-calendar ref"fTime1" select"selectTimePicker" confirm"changeTimePicker" :default-date"null" :show-confirm"false" v-model"timePickerShow" type"range&quo…

Docker之私有仓库 RegistryHarbor

目录 一、Docker私有仓库&#xff08;Registry&#xff09; 1.1 Registry的介绍 二、搭建本地私有仓库 2.1首先下载 registry 镜像 2.2在 daemon.json 文件中添加私有镜像仓库地址 2.3运行 registry 容器 2.4Docker容器的重启策略 2.5为镜像打标签 2.6上传到私有仓库 2…

Qt+C++桌面计算器源码

程序示例精选 QtC桌面计算器源码 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<QtC桌面计算器源码>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。 学习与…

VUE 开发知识个人记录

以下内容是本人在开发过程中实际验证过的一些固定写法&#xff0c;记录下来&#xff0c;方便自己后续开发过程中直接拷贝粘贴。 1、div 设置宽度自适应文本内容&#xff1a;设置 div 节点的 class 为下面 auto-adjust-text-width .auto-adjust-text-width {display: inline-b…

微签京瓷合作,亮相2023办公行业博览会

武汉&#xff0c;2023年8月8日至8月10日&#xff0c;2023中国现代办公行业年会暨中国智能办公行业博览会在武汉光谷科技会展中心盛大开幕。在这场行业盛会上&#xff0c;微签与京瓷合作打造的OA数字化管理系统重磅亮相&#xff0c;向广大消费者展示了微签在办公设备领域的转型升…

ASP.NET Core 8 的运行环境 Environment

开发流程一般有3个阶段&#xff1a; 开发 Development测试 Stage正式 Production 运行时环境变量可以用于根据不同的开发阶段运行不同的逻辑&#xff0c;比如在开发阶段的某些功能或保密信息不暴露在正式上线的代码中。 在Visual Stduio创建的模板代码中是否为开发环境Envir…

积分商城小程序如何精细化运营

随着移动互联网的发展&#xff0c;积分商城小程序成为了企业私域营销的重要组成部分。通过积分商城&#xff0c;企业可以激励用户参与、增加用户粘性&#xff0c;实现更好的用户互动和忠诚度提升。然而&#xff0c;要取得成功&#xff0c;积分商城小程序需要经过精细化的运营。…

最简单 实现 Element-ui el-table的懒加载表格数据 el-table懒加载请求数据 element-ui 懒加载

最简单 实现 Element-ui el-table的懒加载表格数据 el-table懒加载请求数据 element-ui 懒加载 1、效果图2、代码 1、效果图 2、代码 <template> <el-table :data"tableData" style"width: 100%" expand-change"expandChange"><…

TS 入门

TS 入门 interface 约束作用数组的声明方式函数的定义联合类型、交叉类型、断言类型类的方面 interface 约束作用 数组的声明方式 函数的定义 联合类型、交叉类型、断言类型 类的方面 这是代码的地址&#xff1a; 代码的地址

解释 Git 的基本概念和使用方式(InsCode AI 创作助手)

Git 是一种分布式版本控制系统&#xff0c;它允许多个用户协同工作并对项目进行版本控制。下面是 Git 的基本概念和使用方式&#xff1a; 基本概念&#xff1a; 仓库&#xff08;Repository&#xff09;&#xff1a;存储代码和版本历史记录的地方。 提交&#xff08;Commit&a…

【阿里云OSS】golang实现 添加文件到OSS | OSS批量删除bucket下指定的文件夹以及内部的文件

一、上传文件到阿里云OSS 1、前提 我们需要将文件上传到本地的服务器内 2、OSS代码实现 package commonimport ("fmt""gitee.com/ctra/ctra-go-common.git/constant""github.com/aliyun/alibaba-cloud-sdk-go/services/sts""github.com/a…

云上办公系统项目

云上办公系统项目 1、云上办公系统1.1、介绍1.2、核心技术1.3、开发环境说明1.4、产品展示后台前台 1.5、 个人总结 2、后端环境搭建2.1、建库建表2.2、创建Maven项目pom文件guigu-oa-parentcommoncommon-utilservice-utilmodelservice-oa 配置数据源、服务器端口号application…

【实验六】组合逻辑电路的设计

【实验内容】 【实验报告】

C++中使用 do…while 循环

C中使用 do…while 循环 在有些情况&#xff08;如程序清单 6.8 所示的情况&#xff09;下&#xff0c;您需要将代码放在循环中&#xff0c;并确保它们至少执行一次。此时 do…while 循环可派上用场。 do…while 循环的语法如下&#xff1a; do {StatementBlock; // executed…

C++ 文件和流

iostream 标准库提供了 cin 和 cout 方法&#xff0c;用于从标准输入读取流和向标准输出写入流。而从文件中读取流或向文件写入流&#xff0c;需要用到fstream标准库。在 C 中进行文件处理时&#xff0c;须在源代码文件中包含头文件 <iostream> 和 <fstream>。fstr…