当前位置: 首页 > article >正文

git安装与配置与相关命令

一、Git 基本概念

首先要理解 Git 是什么,它怎么帮助我们管理代码:
Git 是一个版本控制系统,专门用来跟踪和管理代码的修改历史,帮助开发者进行协作。

**本地仓库:**你电脑上用 Git 管理的项目,存储代码的所有版本信息。
**远程仓库:**托管在 GitHub、GitLab、Bitbucket 等平台上的仓库,便于多人协作。
**工作区:**就是你项目中的实际文件(比如代码文件),在文件夹中,你进行编辑和修改的地方。
**暂存区:**Git 用来临时保存你修改文件的区域,你需要把修改的文件添加到暂存区,才能提交。
**提交(commit):**把暂存区的修改保存到本地仓库,创建一个新的版本。

二、Git 安装

1. 安装 Git
(1)、你需要先安装 Git,可以从 Git 官网 下载并安装 Git。安装过程中,建议使用默认设置即可。
(2)、git官网地址:https://git-scm.com/
(3)、安装完成后打开控制面板(win+R 输入cmd),输入git --version 查看Git版本信息,检测git。

三、配置Git

1.配置本地信息
为了在后面上传项目到github时方便知道是谁上传的,需要给本机git配置用户名和邮箱:
打开 git bash(也可任意位置右键打开 git bash):输入命令。

git config --global user.name "Your Name"
git config --global user.email "email@example.com"

在这里插入图片描述

四、配置SSH

Git 并不强制要求配置 SSH,但是使用 SSH 密钥来连接 Git 远程仓库是更安全和高效的一种方式,尤其是在频繁操作远程仓库时。使用SSH 密钥可以避免每次推送或拉取代码时都输入 GitHub、GitLab 等平台的用户名和密码。

1、是否需要配置 SSH?

如果你使用 HTTPS 连接到远程仓库: 你需要在每次推送或拉取时输入用户名和密码。 如果你开启了 Two-Factor
Authentication(2FA,双因素认证),你还需要生成一个令牌来代替密码。 不需要配置 SSH 密钥。

如果你使用 SSH 连接到远程仓库: 在第一次配置 SSH 密钥后,之后的操作不再需要输入用户名和密码。 SSH
是一种更安全的认证方式,并且一旦配置好,可以自动完成身份验证,避免频繁输入凭据。

2、SSH与SSH Key是什么?
要了解SSH key简介,首先得熟悉SSH,Secure Shell (SSH) 是一个允许两台电脑之间通过安全的连接进行数据交换的网络协议。SSH 密钥对可以让您方便的登录到 SSH 服务器,而无需输入密码。SSH 密钥对总是成双出现的,一把公钥,一把私钥。这里用到了非对称公钥加密体系,生成的公钥放到github或者gitlab的网站上,生成的私钥放在自己的电脑上。
ssh教程暂时不出。

五、Git 提供了许多命令来处理版本控制的各种操作。以下是一些常用的 Git 命令,涵盖了更多的操作场景:

  1. 基本操作命令

查看 Git 版本
显示当前安装的 Git 版本。

git --version

配置 Git 用户信息
设置用户名和电子邮件(全局配置,适用于所有仓库)。

git config --global user.name "Your Name"
git config --global user.email "you@example.com" 

查看配置项
显示当前的 Git 配置信息。

git config --list

初始化本地仓库
初始化一个 Git 仓库,当你开始使用 Git 来管理一个项目时,首先需要初始化 Git 仓库。这会在你当前文件夹中创建一个 .git 文件夹,用来记录所有 Git 信息。
解释:该命令会在当前目录下初始化一个 Git 仓库,这样你就可以开始使用 Git 来管理项目中的文件了。

git init

克隆远程仓库
克隆一个远程 Git 仓库到本地。

git clone <仓库http网址>
  1. 文件状态相关命令

查看文件状态
查看当前工作目录的状态(哪些文件有改动,哪些文件已经暂存等)。

git status

查看修改的内容
查看已修改但未暂存的文件的具体内容差异。

git diff

将文件添加到暂存区
将修改的文件添加到暂存区,准备提交。

git add <file-name>

添加所有更改的文件:

git add .

查看文件的差异
查看已暂存的文件与最后一次提交的差异。

git diff --cached
  1. 提交相关命令
    提交修改
    提交暂存区的更改到 Git 仓库。
git commit -m "Your commit message"

提交时跳过暂存区直接提交文件
直接提交当前目录下的文件(不经过暂存区)。

git commit -am "Your commit message"

查看提交日志
查看提交历史。

git log

查看简洁的提交日志(每次提交显示一行简要信息):

git log --oneline

查看提交历史的详细信息,包括每个提交的日期和更改:

git log --stat
  1. 分支管理命令
    查看当前分支
    显示当前所在的分支。
git branch

创建新分支
创建并切换到新分支。

git branch <branch-name>
git checkout <branch-name>

或者用一个命令创建并切换到新分支:

git checkout -b <branch-name>

删除本地分支
删除一个本地分支(删除前需要先切换到其他分支)。

git branch -d <branch-name>

合并分支
合并指定分支到当前分支。

git merge <branch-name>

查看分支历史
查看分支的提交历史。

git log --graph --oneline --decorate --all
  1. 远程仓库相关命令
    查看远程仓库
    查看当前仓库的远程仓库信息。
git remote -v

添加远程仓库
将一个远程仓库添加到本地仓库。

git remote add origin <repository-url>

拉取远程仓库的更新
拉取远程仓库的更新并合并到当前分支。

git pull origin <branch-name>

推送本地更新到远程仓库
将本地的提交推送到远程仓库。

git push origin <branch-name>

推送本地分支到远程仓库
将本地新分支推送到远程仓库并设置跟踪。

git push --set-upstream origin <branch-name>

删除远程分支
删除远程仓库上的分支。

git push origin --delete <branch-name>
  1. 标签管理命令

查看所有标签
显示所有标签。

git tag

创建标签
在当前提交上创建一个标签。

git tag <tag-name>

创建带有描述信息的标签:

git tag -a <tag-name> -m "Tag message"

推送标签到远程仓库
将标签推送到远程仓库。

git push origin <tag-name>

推送所有标签:

git push --tags
  1. 撤销操作相关命令

撤销修改(未暂存)
撤销文件的修改,恢复到上次提交时的状态。

git checkout -- <file-name>

撤销暂存(已暂存)
撤销文件的暂存,恢复到修改前的状态。

git reset <file-name>

撤销最后一次提交
撤销最后一次提交,保留修改(即将修改恢复到工作区)。

git reset --soft HEAD^

撤销最后一次提交并丢弃修改:

git reset --hard HEAD^
  1. 其他常用命令

Git 仓库状态统计
查看当前 Git 仓库的大小、文件变更、提交情况等统计信息。

git gc

查看文件的提交历史
查看某个文件的提交历史。

git log -- <file-name>

重命名分支
如果您想要重命名当前分支,可以使用以下命令:

git branch -m <new-branch-name>

总结
这些命令是 Git 使用过程中常见的操作,掌握这些命令后,您就可以轻松管理代码版本、分支以及与远程仓库的同步。根据您的实际需求,灵活运用这些命令,将有助于提高工作效率。如果遇到更复杂的操作,Git 还提供了很多高级功能,您可以根据需要进一步学习和探索。


http://www.kler.cn/a/417933.html

相关文章:

  • SQL面试题——抖音SQL面试题 最近一笔有效订单
  • 深入解析 MySQL 启动方式:`systemctl` 与 `mysqld` 的对比与应用
  • [网络安全]sqli-labs Less-5 解题详析
  • 【Electron学习笔记(三)】Electron的主进程和渲染进程
  • 用Transformers和FastAPI快速搭建后端算法api
  • 在RockyLinux9.4上安装Microk8s
  • Matlab搜索路径添加不上
  • 人脸识别API解锁智能生活、C++人脸识别接口软文
  • Apache SeaTunnel 自定义连接器适配华为大数据平台集成组件ClickHouse
  • FPGA存在的意义:为什么adc连续采样需要fpga来做,而不会直接用iic来实现
  • sentinel使用手册
  • 基于java注解实现websocket详解
  • 如何更好地设计SaaS系统架构
  • MATLAB期末复习笔记(上)
  • 基于Java Springboot 求职招聘平台
  • 爬虫框架快速入门——Scrapy
  • QT 实现组织树状图
  • flutter底部导航栏中间按钮凸起,导航栏中间部分凹陷效果
  • Cursor AI快捷键的使用场景及作用
  • 【机器学习】机器学习算法与模型:逻辑回归算法
  • 电销卡风险管理系统
  • springboot358智慧社区居家养老健康管理系统(论文+源码)_kaic
  • 【大数据学习 | Spark调优篇】数据序列化(kryo序列化)
  • 鸿蒙学习使用模拟器运行应用(开发篇)
  • 深度学习基础03_BP算法(下)过拟合和欠拟合
  • 工程设计与总承包行业数字化转型:现状洞察、挑战突围与前景展望