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 忽略,并且不会再被添加到仓库中。

相关推荐
和你一起去月球9 小时前
TypeScript - 函数(下)
javascript·git·typescript
我不是程序猿儿10 小时前
【GIT】TortoiseGit的变基(Rebase)操作
git
yyycqupt16 小时前
git使用(一)
git
Kkooe20 小时前
GitLab|数据迁移
运维·服务器·git
Beekeeper&&P...21 小时前
git bash是什么,git是什么,git中的暂存区是什么,git中的本地仓库是什么,git中工作目录指的是什么
开发语言·git·bash
Stara05111 天前
Git推送+拉去+uwsgi+Nginx服务器部署项目
git·python·mysql·nginx·gitee·github·uwsgi
lsswear1 天前
GIT 操作
git
勋勋勋勋小勋勋1 天前
git分支合并某一次提交
git
PandaCave1 天前
git常用命令以及注意事项总结
git