【工具】Git 操作大全

ops/2024/12/18 15:55:15/

文章目录

    • 1. Git 基础操作
      • 1.1 初始化 Git 仓库
      • 1.2 克隆现有仓库
      • 1.3 配置 Git 用户信息
      • 1.4 查看 Git 配置信息
    • 2. 文件操作
      • 2.1 查看文件状态
      • 2.2 添加文件到暂存区
      • 2.3 提交文件到本地仓库
      • 2.4 查看提交历史
      • 2.5 回退到上一个提交
    • 3. 分支操作
      • 3.1 创建新分支
      • 3.2 切换分支
      • 3.3 查看所有分支
      • 3.4 删除本地分支
      • 3.5 合并分支
      • 3.6 解决合并冲突
    • 4. 远程操作
      • 4.1 添加远程仓库
      • 4.2 查看远程仓库信息
      • 4.3 拉取远程仓库更新
      • 4.4 推送代码到远程仓库
      • 4.5 删除远程分支
      • 4.6 拉取并合并远程分支
    • 5. 标签操作
      • 5.1 创建标签
      • 5.2 查看标签
      • 5.3 推送标签到远程仓库
      • 5.4 删除标签
    • 6. Git 流程与工作流
      • 6.1 使用 Git Flow 工作流
      • 6.2 基本的 Git Flow 操作
    • 7. 进阶操作
      • 7.1 使用 Git Rebase
      • 7.2 Git Stash
      • 7.3 检查文件的修改记录
    • 8. Git 常见问题与解决
      • 8.1 如何取消未提交的更改?
      • 8.2 如何强制推送?
      • 8.3 如何重命名本地分支?


1. Git 基础操作

1.1 初始化 Git 仓库

在一个空目录中初始化一个新的 Git 仓库:

git init

1.2 克隆现有仓库

复制一个已经存在的远程仓库

git clone https://github.com/yourusername/yourrepository.git

1.3 配置 Git 用户信息

在本地使用 Git 前,需要配置用户名和邮箱,这将与提交记录关联:

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

1.4 查看 Git 配置信息

要查看当前的 Git 配置信息,可以使用以下命令:

git config --list

2. 文件操作

2.1 查看文件状态

查看工作区和暂存区的文件状态:

git status

2.2 添加文件到暂存区

将修改后的文件添加到 Git 暂存区:

git add <file_name>

要添加所有修改过的文件,可以使用:

git add .

2.3 提交文件到本地仓库

提交文件时,需要写明提交信息,描述这次提交的更改:

git commit -m "Commit message"

2.4 查看提交历史

查看提交历史记录:

git log

使用 --oneline 可以简化显示:

git log --oneline

2.5 回退到上一个提交

如果想撤销上一次的提交,并将文件恢复到暂存区:

git reset --soft HEAD~1

如果想彻底撤销上一次的提交并恢复工作区文件:

git reset --hard HEAD~1

3. 分支操作

3.1 创建新分支

创建一个新分支并切换到该分支:

git checkout -b new-branch

3.2 切换分支

切换到已有的分支:

git checkout branch-name

3.3 查看所有分支

查看当前仓库的所有分支:

git branch

3.4 删除本地分支

删除本地分支:

git branch -d branch-name

如果分支尚未合并,你可以强制删除:

git branch -D branch-name

3.5 合并分支

将指定分支的内容合并到当前分支:

git merge branch-name

3.6 解决合并冲突

合并时可能会遇到冲突,Git 会标记冲突的文件,你需要手动编辑文件解决冲突,编辑后使用:

git add conflicted-file
git commit -m "Resolve merge conflict"

4. 远程操作

4.1 添加远程仓库

将远程仓库与本地仓库关联:

git remote add origin https://github.com/yourusername/yourrepository.git

4.2 查看远程仓库信息

查看当前配置的远程仓库信息:

git remote -v

4.3 拉取远程仓库更新

从远程仓库拉取最新代码,并自动合并:

git pull origin branch-name

4.4 推送代码到远程仓库

将本地的更改推送到远程仓库:

git push origin branch-name

4.5 删除远程分支

删除远程仓库中的分支:

git push origin --delete branch-name

4.6 拉取并合并远程分支

如果你要拉取并合并远程分支到当前分支:

git fetch origin
git merge origin/branch-name

5. 标签操作

5.1 创建标签

创建一个新的标签(例如:v1.0):

git tag v1.0

5.2 查看标签

查看所有标签:

git tag

5.3 推送标签到远程仓库

将本地标签推送到远程仓库:

git push origin v1.0

5.4 删除标签

删除本地标签:

git tag -d v1.0

删除远程标签:

git push origin --delete tag v1.0

6. Git 流程与工作流

6.1 使用 Git Flow 工作流

Git Flow 是一种常见的 Git 分支管理工作流,分为以下几种分支类型:

  • master:稳定版,始终可部署。
  • develop:开发版,包含即将发布的功能。
  • feature/:功能开发分支。
  • release/:发布分支,准备生产环境部署。
  • hotfix/:修复分支,用于生产环境问题的修复。

6.2 基本的 Git Flow 操作

初始化 Git Flow(只需执行一次):

git flow init

开始新功能开发:

git flow feature start new-feature

结束功能开发并合并到 develop

git flow feature finish new-feature

创建发布分支:

git flow release start 1.0

发布并合并到 masterdevelop

git flow release finish 1.0

修复生产环境 bug:

git flow hotfix start fix-bug

结束并合并到 masterdevelop

git flow hotfix finish fix-bug

7. 进阶操作

7.1 使用 Git Rebase

rebase 可以将分支的修改历史重新应用在另一个分支上,常用于保持项目历史记录的整洁。

git rebase master

7.2 Git Stash

git stash 可以暂存当前工作区的更改,以便切换到其他分支而不丢失修改:

git stash

恢复暂存的更改:

git stash pop

7.3 检查文件的修改记录

查看文件的修改历史:

git log -- <file_name>

查看文件的每次修改:

git blame <file_name>

8. Git 常见问题与解决

8.1 如何取消未提交的更改?

如果你在工作区修改了文件,但还没有提交,可以使用以下命令取消修改:

git checkout -- <file_name>

8.2 如何强制推送?

如果你需要强制推送本地分支到远程仓库(如覆盖远程分支),可以使用:

git push -f origin branch-name

8.3 如何重命名本地分支?

如果你想重命名当前分支,可以使用:

git branch -m new-branch-name

如果想重命名其他分支:

git branch -m old-branch-name new-branch-name

http://www.ppmy.cn/ops/142956.html

相关文章

第六章:反射+设计模式

一、反射 1.反射(Reflection):允许在程序运行状态中&#xff0c;可以获取任意类中的属性和方法&#xff0c;并且可以操作任意对象内部的属性和方法&#xff0c;这种动态获取类的信息及动态操作对象的属性和方法对应的机制称为反射机制。 2.类对象和类的对象(实例) (1) 类的对象…

游戏引擎学习第53天

仓库: https://gitee.com/mrxiao_com/2d_game 回顾 现在我们正进行游戏结构的重构&#xff0c;目的是为了更合理地安排游戏的组织方式&#xff0c;模拟玩家周围的实体。我们将这些实体分为两类&#xff1a;一类是当前正在屏幕上显示的实体&#xff0c;另一类是被映射到低频更…

【Pandas】pandas interval_range

Pandas2.2 General Top-level dealing with Interval data 方法描述interval_range([start, end, periods, freq, …])用于生成固定长度的区间序列 pandas.interval_range() pandas.interval_range() 是 Pandas 库中用于生成固定频率的 Interval 对象的函数。这些 Interval…

无管理员权限 LCU auth-token、port 获取(全网首发 go)

一&#xff1a; 提要&#xff1a; 参考项目&#xff1a; https://github.com/Zzaphkiel/Seraphine 想做一个 lol 查战绩的软件&#xff0c;并且满足自己的需求&#xff08;把混子和大爹都表示出来&#xff09;&#xff0c;做的第一步就是获取 lcu token &#xff0c;网上清一色…

《探秘开源气味数据库:数字世界里的“气味宝藏”》

《探秘开源气味数据库&#xff1a;数字世界里的“气味宝藏”》 一、开源气味数据库的兴起背景&#xff08;一&#xff09;技术发展的推动&#xff08;二&#xff09;市场需求的催生 二、常见的开源气味数据库介绍&#xff08;一&#xff09;GS-LF 香精香料数据库&#xff08;二…

AirSim 利用pygame绘制窗口并获取无人机FPV实时图像呈现

利用pygame绘制窗口并获取无人机FPV实时图像呈现的代码如下&#xff1a; import sys import time import airsim import pygame import cv2 import numpy as np# >------>>> pygame settings <<<------< # pygame.init()# 创建 pygame 窗口 screen…

es 3期 第16节-运用启发式特性引导用户查询

#### 1.Elasticsearch是数据库&#xff0c;不是普通的Java应用程序&#xff0c;传统数据库需要的硬件资源同样需要&#xff0c;提升性能最有效的就是升级硬件。 #### 2.Elasticsearch是文档型数据库&#xff0c;不是关系型数据库&#xff0c;不具备严格的ACID事务特性&#xff…

机器学习-正则化技术

文章目录 拟合正则化正则项L1 正则化&#xff08;Lasso&#xff09;L2 正则化&#xff08;Ridge&#xff09; 多元线性回归的正则化回归形式代码 拟合 过拟合&#xff1a;参数&#xff08;特征&#xff09;过多&#xff08;理解为考虑很多因素)或者说过多专注于原来的训练数据…