Git 完整操作之记录

目录

[一 . Git 基本操作流程及示例代码](#一 . Git 基本操作流程及示例代码)

[1. 初始化 Git 仓库](#1. 初始化 Git 仓库)

[2. 克隆远程仓库](#2. 克隆远程仓库)

[3. 检查当前状态](#3. 检查当前状态)

[4. 添加文件到暂存区](#4. 添加文件到暂存区)

[5. 提交更改](#5. 提交更改)

[6. 查看提交历史](#6. 查看提交历史)

[7. 创建分支](#7. 创建分支)

[8. 切换分支](#8. 切换分支)

[9. 合并分支](#9. 合并分支)

[10. 推送更改到远程仓库](#10. 推送更改到远程仓库)

[11. 拉取远程仓库的更改](#11. 拉取远程仓库的更改)

[12. 回滚到上一个版本](#12. 回滚到上一个版本)

[二 . .gitignore 过滤](#二 . .gitignore 过滤)

[1. 基本语法](#1. 基本语法)

[(1) 忽略文件夹:](#(1) 忽略文件夹:)

[(2) 忽略文件:](#(2) 忽略文件:)

[(3) 忽略某类型文件:](#(3) 忽略某类型文件:)

[(4) 忽略特定路径的文件或文件夹:](#(4) 忽略特定路径的文件或文件夹:)

[(5) 忽略某一文件夹下的某类型文件:](#(5) 忽略某一文件夹下的某类型文件:)

[2. 添加 .gitignore 文件到 Git 仓库](#2. 添加 .gitignore 文件到 Git 仓库)

[(1)创建或编辑 .gitignore 文件: 在项目的根目录创建 .gitignore 文件,或者编辑现有的 .gitignore 文件。](#(1)创建或编辑 .gitignore 文件: 在项目的根目录创建 .gitignore 文件,或者编辑现有的 .gitignore 文件。)

[(2)将 .gitignore 文件添加到 Git 仓库:](#(2)将 .gitignore 文件添加到 Git 仓库:)

(3)移除已被跟踪的文件或文件夹

(4)示例


一 . Git 基本操作流程及示例代码

以下是一个完整的 Git 基本操作流程和示例代码,包含常见的 Git 命令及其使用示例。

git add .

git commit -m '提交数据'

git  pull origin dev

git  push origin dev
1. 初始化 Git 仓库

如果您还没有 Git 仓库,可以使用以下命令初始化一个新的 Git 仓库:

git init

例如,在当前目录中初始化一个新的 Git 仓库:

mkdir myproject cd myproject git init
2. 克隆远程仓库

如果您要克隆一个现有的远程仓库,可以使用以下命令:

mkdir myproject cd myproject git init

例如,克隆一个 GitHub 仓库:

git clone https://github.com/user/repository.git
3. 检查当前状态

查看工作目录和暂存区的当前状态:

git status
4. 添加文件到暂存区

git add . 和 git add * 区别

git add . 会把本地所有untrack的文件都加入暂存区,并且会根据.gitignore做过滤

git add * 会忽略.gitignore把任何文件都加入

将文件添加到暂存区以便提交:

git add <file-name>

例如,添加一个名为 example.txt 的文件:

git add example.txt

添加所有文件:

git add .
5. 提交更改

将暂存区的更改提交到本地仓库:

git commit -m "Your commit message"
6. 查看提交历史
git log
7. 创建分支
git branch <branch-name>

例如,创建一个名为 feature-branch 的新分支:

git branch feature-branch
8. 切换分支

切换到另一个分支:

git checkout <branch-name>

例如,切换到 feature-branch 分支:

git checkout feature-branch

或者创建并切换到新分支:

git checkout feature-branch

例如:

git checkout -b new-feature
9. 合并分支

将另一个分支合并到当前分支:

git merge <branch-name>

例如,将 feature-branch 分支合并到当前分支:

git merge feature-branch
10. 推送更改到远程仓库

将本地分支推送到远程仓库:

git push origin <branch-name>

例如,将 feature-branch 分支推送到远程:

git push origin feature-branch
11. 拉取远程仓库的更改

从远程仓库拉取最新更改并合并到当前分支:

git pull

从特定分支拉取并合并:

git pull origin <branch-name>

例如,从 main 分支拉取并合并:

git pull origin main
12. 回滚到上一个版本

查看提交历史:

git log

找到目标提交哈希后,回滚到该提交:

git checkout <commit-hash>

例如,回滚到特定提交:

git checkout 1a2b3c4d

硬重置到特定提交(警告:会丢失之后的更改):

git reset --hard <commit-hash>

例如:

git reset --hard 1a2b3c4d

二 . .gitignore 过滤

在 Git 中,使用 .gitignore 文件来过滤掉不想被跟踪的文件和文件夹

下面是一些常见的 .gitignore 文件的用法和示例规则。

1. 基本语法

(1) 忽略文件夹
/folder_name/

忽略项目根目录中的 folder_name 文件夹及其所有内容。

(2) 忽略文件
filename.ext

忽略项目中的所有 filename.ext 文件。

(3) 忽略某类型文件
*.ext

忽略项目中的所有 .ext 文件。

(4) 忽略特定路径的文件或文件夹
/path/to/folder/
/path/to/file.ext

忽略指定路径中的文件或文件夹。

(5) 忽略某一文件夹下的某类型文件
folder_name/*.ext

忽略 folder_name 文件夹中的所有 .ext 文件。

(6) 示例 .gitignore 文件

以下是一个示例 .gitignore 文件,其中包含了一些常见的过滤规则:

# Node.js
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Python
__pycache__/
*.py[cod]
*.egg-info/
*.egg
*.pyo

# Java
*.class
*.jar
*.war
*.ear

# Logs
logs/
*.log

# OS generated files
.DS_Store
Thumbs.db

# IDEs and editors
.idea/
.vscode/
*.swp

# Compiled source
*.com
*.class
*.dll
*.exe
*.o
*.so

# Static folder
/static/

# Ignore specific configuration files
config/local_settings.py

2. 添加 .gitignore 文件到 Git 仓库

(1)创建或编辑 .gitignore 文件 : 在项目的根目录创建 .gitignore 文件,或者编辑现有的 .gitignore 文件。
(2)将 .gitignore 文件添加到 Git 仓库
git add .gitignore
git commit -m "添加 .gitignore 文件"
git push origin <your-branch-name>
(3)移除已被跟踪的文件或文件夹

如果某些文件或文件夹已经被 Git 跟踪,需要先将它们从 Git 的索引中移除,然后再提交更改:

git rm -r --cached <path_to_file_or_folder>
git commit -m "移除已跟踪的文件或文件夹"
git push origin <your-branch-name>
(4)示例

假设您想要忽略 static.idea__pycache__ 文件夹,并且这些文件夹已经被跟踪了,可以按照以下步骤操作:

  1. 更新 .gitignore 文件

    /static/
    /.idea/
    /__pycache__/
    
  2. 移除这些文件夹的跟踪

    git rm -r --cached static
    git rm -r --cached .idea
    git rm -r --cached __pycache__
    
  3. 提交更改

    git add .gitignore
    git commit -m "删除并忽略 static、.idea 和 __pycache__ 文件夹"
    git push origin <your-branch-name>
    

这样可以确保这些文件夹在未来的操作中被 Git 忽略,并且不会再被添加到仓库中。

相关推荐
清源妙木真菌2 小时前
Linux:git的了解和基础使用(保姆级教程)
git
但老师10 小时前
Git遇到“fatal: bad object refs/heads/master - 副本”问题的解决办法
git
秃头女孩y10 小时前
git创建分支
git
研究是为了理解15 小时前
Git Bash 常用命令
git·elasticsearch·bash
DKPT16 小时前
Git 的基本概念和使用方式
git
Winston Wood19 小时前
一文了解git TAG
git·版本控制
喵喵先森19 小时前
Git 的基本概念和使用方式
git·源代码管理
xianwu54321 小时前
反向代理模块
linux·开发语言·网络·git
binishuaio1 天前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
会发光的猪。1 天前
如何在vscode中安装git详细新手教程
前端·ide·git·vscode