【Git】安装与常用命令

一、Git环境配置
二、获取本地仓库
三、基础操作指令
四、分支


Git Bash 使用到基本 Linux 命令

在使用 Git 进行版本控制时,经常需要在 Git Bash 或其他终端中使用一些基本的 Linux 命令。以下是常见的 Git 命令和基本的 Linux 命令示例。

基本 Linux 命令
  1. ls/ll:查看当前目录

    # 列出当前目录中的文件和文件夹
    ls
    
    # 列出当前目录中的文件和文件夹,显示详细信息
    ll
    
  2. cat:查看文件内容

    # 查看文件内容
    cat <filename>
    
  3. touch:创建文件

    # 创建一个新文件
    touch <filename>
    
  4. vi:vi 编辑器

    # 使用 vi 编辑器打开文件
    vi <filename>
    
    # vi 编辑器的基本使用:
    # 进入插入模式:按 'i'
    # 保存并退出:按 'Esc',然后输入 ':wq',再按 'Enter'
    # 退出不保存:按 'Esc',然后输入 ':q!',再按 'Enter'
    

通过上述命令,开发者可以在 Git Bash 中高效地进行版本控制操作,同时掌握基本的 Linux 命令,有助于更好地管理和操作项目文件。

一、Git环境配置

1.1、下载与安装

下载地址: https://git-scm.com/download

在这里插入图片描述
在这里插入图片描述

1.下载完成后,直接点击安装包安装,即可。

在这里插入图片描述

2.开始安装,然后下一步

3.可以在此处自定义地址,然后下一步

3.选择组件

此处默认即可,但我选择了一个新功能。

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/547cb71b58d7411598a7d3678623cc41.png) ### 4.选择Git默认的编辑器 此处选择默认即可,有特殊爱好亦可更换。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/37aeffc6e133418c90be0cd33b0cd654.png) ### 5.选择执行git init命令时创建的分支名 第一个选项是使用 master 作为分支名,第二个选项自定义分支名。此处默认即可。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/4207e9c2e78e49b0a11254ed9cb28e8c.png) ### 6.设置环境变量PATH

配置一是 “仅从 Git Bash 使用 Git” 。这是最安全的选择,因为您的 PATH 根本不会被修改。您只能使用 Git Bash 的 Git 命令行工具。但这将不能通过第三方软件调用 Git 。

配置二是 “从命令行以及第三方软件启用 Git” 。该选项被认为是安全的,因为它仅向 PATH 添加了一些最小的 Unix 命令解析器,以避免使用时造成系统环境混乱。您将能够从 Git Bash ,命令提示符和 Windows PowerShell 以及在 PATH 中寻找 Git 或是在任何第三方软件中使用 Git 。这也是推荐的选项。

配置三是 “从命令提示符使用 Git 和可选的 Unix 命令” 。警告:这将覆盖 Windows 命令,如:find 和 sort。你只有在了解其含义后才使用此选项。

一般默认即可。

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/efd5803b484548039764022a0d96444e.png) ### 7.选择SSH连接工具 - 选项一是使用内置的 SSH 工具 - 选项二是使用自定义的 SSH 工具

如果没有特殊习惯,默认即可。

8.选择在加密连接时使用的证书

选项一是服务器证书将使用 ca-bundle.crt 文件进行验证。这也是默认的选项。

选项二是“使用本地 Windows 安全通道库”。服务器将使用 Windows 证书验证,此选项还允许您使用公司的内部根 CA 证书,例如使用 Active Directory Domain Services.

一般默认即可

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/809c9987ac104e68a5b0d8bc89563e5b.png) ### 9.配置行尾符号转换

选项一是“查看时使用 Windows 风格的行尾,保存时使用 Unix 风格的行尾”。查看文本文件时,Git 会将 LF 转换为 CRLF 。保存文本文件时, CRLF 将转换为 LF 。对于跨平台项目十分有用,这里是 Windows 上的推荐设置(core.autocrlf设置为true)

选项二是“查看时按原样展示,保存时使用 Unix 样式的行尾”。查看文本文件时,Git 不会执行任何转换。 保存文本文件时,CRLF 将转换为 LF 。对于跨平台项目比较有用,这是 Unix 上的建议设置(core.autocrlf设置为input)

选项三是“查看时按原样展示,保存时按原样保存”。当查看或保存文本文件时,Git 不会执行任何转换。不建议跨平台项目选择此选项(core.autocrlf设置为false)。

一般默认即可。

10.配置终端模拟器以与Git Bash一起使用

选项一是“使用 MinTTY( MSYS2 的默认终端)”。Git Bash 将使用 MinTTY 作为终端模拟器,该模拟器具有可调整大小的窗口,非矩形文本选择和显示 Unicode 字体。但 Windows 控制台程序(例如交互式 Python )必须通过“ winpty ”启动才能在 MinTTY 中运行。

选项二是“使用 Windows 的默认控制台窗口”。Git 将使用 Windows 的默认控制台窗口cmd.exe,该窗口可以与 Windows 控制台程序(如交互式 Python 或 node.js )一起使用,但默认的回滚非常有限,需要配置 Unicode 字体才能正确显示非 ASCII 字符,并且在 Windows 10 之前,其窗口不能自由调整大小,并且只允许矩形文本选择。

一般默认即可。

11.使用git pull命令时默认的模式

一般默认即可。

12.是否启用 credential helper 登录凭证管理助手

一般默认即可。

13.配置额外的选项

一般默认即可。

14.是否启用实验功能

这里不勾选,默认选择,如果想尝试新功能,可官网查阅资料了解即可

15.开始安装,等待片刻,最后finish

安装完成后在电脑桌面(也可以是其他目录)点击右键,如果能够看
到如下两个菜单则说明Git安装成功。

备注:
Git GUI:Git提供的图形界面工具
Git Bash:Git提供的命令行工具

1.2、基本配置

当安装Git后首先要做的事情是设置用户名称和email地址。
这是非常重要的,因为每次Git提交都会使用该用户信息

git config --global user.name “GLNG” 
git config --global user.email “GLNG@gmail.con” 

查看配置信息

git config --global --list
git config --global user.name
git config --global user.email

1.3、为常用指令配置别名(可选)

有些常用的指令参数非常多,每次都要输入好多参数,我们可以使用别名。

  1. 打开用户目录,创建 .bashrc 文件
    部分windows系统不允许用户创建点号开头的文件,可以打开gitBash,执行 touch ~/.bashrc
touch ~/.bashrc
  1. .bashrc 文件中输入如下内容:
#用于输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
#用于输出当前目录所有文件及基本信息
alias ll='ls -all'

在这里插入图片描述


  1. 打开gitBash,执行 source ~/.bashrc
source ~/.bashrc

1.4、解决GitBash乱码问题

  1. 打开GitBash执行下面命令
git config --global core.quotepath false
  1. ${git_home}/etc/bash.bashrc 文件最后加入下面两行
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"

二、获取本地仓库

要使用Git对我们的代码进行版本控制,首先需要获得本地仓库

  1. 在电脑的任意位置创建一个空目录(例如test)作为我们的本地Git仓库
  2. 进入这个目录中,点击右键打开Git bash窗口
  3. 执行命令git init
  4. 如果创建成功后可在文件夹下看到隐藏的.git目录。

三、基础操作指令

Git工作目录下对于文件的修改(增加、删除、更新)会存在几个状态,这些修改的状态会随着我们执行Git的命令而发生变化。

如何使用命令来控制这些状态之间的转换:

git add (工作区 --> 暂存区)
git commit (暂存区 --> 本地仓库)

3.1、*查看修改的状态(status

作用:查看的修改的状态(暂存区、工作区)
命令形式:

git status

3.2、*添加工作区到暂存区(add)

作用:添加工作区一个或多个文件的修改到暂存区
命令形式:

git add 单个文件名|通配符

将所有修改加入暂存区:

git add .

3.3、*提交暂存区到本地仓库(commit)

作用:提交暂存区内容到本地仓库的当前分支
命令形式:

git commit -m '注释内容'

3.4、*查看提交日志(log)

在 1.3、中配置的别名 git-log 就包含了这些参数,所以后续可以直接使用指令 git-log
作用:查看提交记录
命令形式:

git log [option]
git log --all --pretty=oneline --abbrev-commit --graph

options:

--all 显示所有分支,获得整个仓库的完整提交视图
--pretty=oneline 简化了每条提交信息的显示方式,使得每条提交记录只占用一行
--abbrev-commit 使得Git在显示提交commitID(也称为commit hash)更简短哈希值
--graph Git会在输出中加入ASCII字符构成的图形
--decorate 此选项会在提交历史旁边标注出分支名、标签名等(新版本默认开启的)

3.5、版本回退

作用:版本切换
命令形式:

git reset --hard commitID

commitID 可以使用 git-log 或 git log 指令查看

如何查看已经删除的记录?

git reflog

这个指令可以看到已经删除的提交记录

ctrl + L清屏

clear 清除

3.6、添加文件至忽略列表

一般我们总会有些文件无需纳入Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以在工作目录中创建一个名为 .gitignore 的文件(文件名称固定),列出要忽略的文件模式。
下面是一个示例:

# Ignoring .a file
*.a
# but do track lib.a, even though you're ignoring .a files above
!lib.a
# only ignore the TODO file in the current directory, not subdir/TODO
/TODO
# ignore all files in the build/ directory
build/
# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt
# ignore all .pdf files in the doc/ directory
doc/**/*.pdf

example

#####################仓库初始化######################
# 创建目录(Git_repository)并在目录下打开git bash
略
# 初始化git仓库
git init
#####################创建文件并提交#####################
# 目录下创建文件 test.txt
touch test.txt
# 将修改加入暂存区
git add .
# 将修改提交到本地仓库,提交记录内容为:commit 001
git commit -m '注释内容'
# 查看日志
git log
####################修改文件并提交######################
# 修改test.txt的内容
vim test.txt
# 将修改加入暂存区
git add .
# # 将修改提交到本地仓库,提交记录内容为:update file01
git commit --m 'update test01'
# 查看日志
git log
# 以精简的方式显示提交记录
git-log
####################将最后一次修改还原##################
# 查看提交记录
git-log
# 版本回退 找到倒数第2次提交的commitID
git reset --hard commitID
# 查看已经删除的记录
git reflog

四、分支

几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的Bug修改、开发新的功能,以免影响开发主线。

4.1、查看本地分支

git branch

4.2、创建本地分支

git branch 分支名

我们还可以直接切换到一个不存在的分支(创建并切换)

git checkout -b 分支名

4.4、*切换分支(checkout)

git checkout 分支名

4.6、*合并分支(merge)

一个分支上的提交可以合并到另一个分支

git merge 分支名称

4.7、删除分支

不能删除当前分支,只能删除其他分支

git branch -d 分支名称 // 删除分支时,需要做各种检查
git branch -D 分支名称 // 不做任何检查,强制删除

4.8、解决冲突

当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解
决冲突,解决冲突步骤如下:

  1. 处理文件中冲突的地方
  2. 将解决完冲突的文件加入暂存区(add)
  3. 提交到仓库(commit)
    冲突部分的内容处理如下所示:

4.9、开发中分支使用原则与流程

几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离
开来进行重大的Bug修改、开发新的功能,以免影响开发主线。
在开发中,一般有如下分支使用原则与流程:

  • master (生产) 分支
    线上分支,主分支,中小规模项目作为线上运行的应用对应的分支;
  • develop(开发)分支
    是从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到master分支,准备上线。
  • feature/xxxx分支
    从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到develop分支。
  • hotfix/xxxx分支,
    从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、develop分支。
  • 还有一些其他分支,在此不再详述,例如test分支(用于代码测试)、pre分支(预上线分支)等等。

exmple

###########################创建并切换到develop分支,在develop分支提交
# [master]创建分支develop
git branch develop

# [master]切换到develop
git checkout develop

# [develop]创建文件test.txt
touch test.txt

# [develop]将修改加入暂存区并提交到仓库,提交记录内容为:add test on dev
git add .
git commit -m 'add test on dev'

# [develop]以精简的方式显示提交记录
git-log

###########################切换到master分支,将develop合并到master分支
# [develop]切换到master分支
git checkout master

# [master]合并develop到master分支
git merge develop

# [master]以精简的方式显示提交记录
git-log

# [master]查看文件变化(目录下也出现了test.txt)
略

##########################删除develop分支
# [master]删除develop分支
git branch -d develop

# [master]以精简的方式显示提交记录
git-log

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

无线麦克风推荐哪些品牌,一文揭秘无线麦克风领夹哪个牌子好!

​究竟该如何选择麦克风呢&#xff1f;又该如何挑选无线麦克呢&#xff1f;询问我关于麦克风选择问题的人着实不少。对于那些仅仅是想要简单地自我娱乐的朋友而言&#xff0c;着实没必要去折腾&#xff0c;直接使用手机自带的麦克风便可以了。 但若是处于想要直播、拍摄短视频…

FPGA PCIe加载提速方案

目录 1.bit流压缩 2.flash加载速度 3.Tandem模式 1.bit流压缩 set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design] 2.flash加载速度 打开bitstream setting&#xff0c;设置SPI的线宽和速率&#xff08;线宽按原理图设置&#xff0c;速率尽可能高&#xff09…

async异步函数

文章目录 异步函数&#xff08;用 async 声明的函数&#xff09;异步函数的返回值async/await 的使用异步函数的异常处理总结 感谢铁子阅读&#xff0c;觉得有帮助的话点点关注点点赞&#xff0c;谢谢&#xff01; 异步函数&#xff08;用 async 声明的函数&#xff09; 异步函…

电阻代码的谐音助记口诀

整理电子信息的课设&#xff0c;发现当时的笔记&#xff0c;记录一下&#xff0c;时间过得真快啊。 01234黑棕红橙黄 56789绿蓝紫灰白 银色和金色代表误差&#xff0c; 银色百分之十 金色百分之五 可以这么理解&#xff0c;运动会奖牌&#xff0c;金牌比银牌等级高&#xff…

Django(根据Models中模型类反向生成数据库表)—— python篇

一、数据库的配置 1、 django默认支持 sqlite&#xff0c;mysql, oracle,postgresql数据库。 sqlite&#xff1a;django默认使用sqlite的数据库&#xff0c;默认自带sqlite的数据库驱动 , 引擎名称&#xff1a;django.db.backends.sqlite3 mysql&#xff1a;引擎名称&#xff…

python实训day5

1、 from ming import getconn conn getconn("gaoming") print() sql [("select * from dept", ()),#"dept"的表中选择所有列("delete from person where sid<%s", (4,)),#删除"person"表中"sid"列小于4的记…

【JavaScript】JS对象和JSON

目录 一、创建JS对象 方式一&#xff1a;new Object() 方式二&#xff1a;{属性名:属性值,...,..., 方法名:function(){ } } 二、JSON格式 JSON格式语法&#xff1a; JSON与Java对象互转: 三、JS常见对象 3.1数组对象API 3.2 其它对象API 一、创建JS对象 方式一&#xff1a;new…

君諾外匯:为什么巴菲特现在加倍下注油气股票?油价上涨是主因吗?

近年来&#xff0c;以巴菲特为代表的一些顶级投资者开始在能源领域加大投资力度&#xff0c;特别是油气股票。这一转变引发了广泛关注&#xff0c;特别是在油价上涨的背景下。本文将Juno markets外匯深入分析巴菲特投资策略的变化原因&#xff0c;探讨其在能源市场的布局及未来…

如何用Vue3和Plotly.js实现一个动态3D图的在线展示

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 基于 Plotly.js 的交互式图表动画 应用场景 本代码演示了如何使用 Plotly.js 创建交互式图表动画&#xff0c;其中一个区域填充的区域在给定时间间隔内更新其数据。这种动画可用于可视化时间序列数据或展示数…

冷门赛道,视频号励志语录赛道详解,新手轻松上手

大家好&#xff0c;我是闷声轻创&#xff0c;在当今数字化时代&#xff0c;社交媒体已成为人们获取信息、分享生活和实现个人价值的重要渠道。视频号&#xff0c;作为新兴的短视频平台&#xff0c;以其独特的优势和巨大的流量潜力&#xff0c;吸引了众多创作者的目光。今天我将…

华为畅享系列多款产品升级HramonyOS 4.2版本,一篇带你解读

最近华为畅享系列多款手机陆续迎来了HarmonyOS 4.2新版本&#xff0c;华为畅享70S、华为畅享70 Pro、华为畅享60X、华为畅享60 Pro和华为畅享50 Pro都在升级计划中。这次升级的4.2版本不仅功能强大&#xff0c;重点是好玩又实用&#xff0c;速来围观&#xff01; 那本次升级版本…

基于JSP的水果销售管理网站

开头语&#xff1a;你好呀&#xff0c;我是计算机学长猫哥&#xff01;如果有相关需求&#xff0c;文末可以找到我的联系方式。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSP技术 工具&#xff1a;B/S架构 系统展示 首页 管理员功能模块 用户前…

使用原子子表创建可重用的子组件

原子子表是一个图形对象&#xff0c;可帮助您在Stateflow图表中创建独立的子部件。原子子表允许&#xff1a; 对具有多个状态或层次结构的图表进行微小更改后&#xff0c;模拟速度更快。 在多个图表和模型中重复使用相同的状态或子表。 易于团队开发&#xff0c;适用于在同一图…

聊一聊UDF/UDTF/UDAF是什么,开发要点及如何使用?

背景介绍 UDF来源于Hive&#xff0c;Hive可以允许用户编写自己定义的函数UDF&#xff0c;然后在查询中进行使用。星环Inceptor中的UDF开发规范与Hive相同&#xff0c;目前有3种UDF&#xff1a; A. UDF--以单个数据行为参数&#xff0c;输出单个数据行&#xff1b; UDF&#…

GMSB文章六:微生物SCFA关联分析

欢迎大家关注全网生信学习者系列&#xff1a; WX公zhong号&#xff1a;生信学习者Xiao hong书&#xff1a;生信学习者知hu&#xff1a;生信学习者CDSN&#xff1a;生信学习者2 介绍 微生物短链脂肪酸&#xff08;SCFAs&#xff09;是由肠道微生物发酵膳食纤维、抗性淀粉、低…

@城规人快来抄作业!转GIS开发月薪12000+

从性价比极低的时薪&#xff0c;到相对稳定的月薪过万&#xff0c;我做对了哪些事情&#xff1f; 今天分享的是城乡规划专业的L拿到GIS开发高薪offer的故事。 初识新中地 该同学是城乡规划专业本科&#xff0c;下面称他为L同学。 L同学是今年夏天在网络上了解了GIS开发和新…

Kafka入门到精通(四)-SpringBoot+Kafka

一丶IDEA创建一个空项目 二丶添加相关依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springf…

MySQL改密

这里写目录标题 更改登录密码&#xff1a;有权限账号能登录mysql中&#xff1a;有权限账号不能登录mysql中&#xff1a;mysql5.6版本命令mysql5.7版本命令修改密码8.0版本改完后&#xff1a; mysql登录不上了本机安装了5.6后&#xff0c;又安装了mysql8.0 更改登录密码&#xf…

双麒麟系统!RK3588+银河麒麟/开放麒麟,全国产让您的产品更具竞争力

01 银河麒麟嵌入式系统介绍 银河麒麟嵌入式操作系统V10 SP1是为物联网及工业互联网场景设计的安全实时系统&#xff0c;基于Linux内核&#xff0c;采用“分域虚拟化 多域隔离”架构&#xff0c;结合了Linux的丰富生态和RTOS的硬实时能力。 该系统支持主流嵌入式芯片&#x…

“数字政协”平台如何提高政协工作效率?正宇软件助力建设!

随着信息技术的飞速发展&#xff0c;数字化已成为推动各行各业转型升级的重要力量。在政协工作中&#xff0c;数字政协平台的建设与运用&#xff0c;正成为提高政协工作效率、促进民主协商的重要手段。本文将从数字政协平台的功能特点、优势分析以及实践应用等方面&#xff0c;…