GIT使用list

清空当前commit区

方法 1:软重置到初始状态

如果希望保留文件内容,但清空所有 commit 历史,可以使用以下命令:

bash 复制代码
git reset --soft $(git rev-list --max-parents=0 HEAD)

解释:

  • --soft 表示重置 commit 历史,但保留所有文件的更改状态。
  • $(git rev-list --max-parents=0 HEAD) 表示将仓库重置到初始 commit(第一个 commit)。

此命令执行后,所有历史 commit 将被移除,所有更改将保留在暂存区,你可以重新创建新的 commit

方法 2:硬重置到初始状态

如果希望删除所有 commit 历史,并将项目状态还原为第一个 commit 时的状态,可以使用以下命令:

bash 复制代码
git reset --hard $(git rev-list --max-parents=0 HEAD)
  • --hard 表示重置所有内容,包括文件更改,将项目回到初始状态。

注意:此操作会删除所有文件的更改,确保重要更改已备份。

方法 3:删除 .git 文件夹(完全清空仓库)

如果想彻底删除所有的 commit 历史并重建 Git 仓库,可以直接删除 .git 文件夹并重新初始化:

bash 复制代码
rm -rf .git
git init

然后重新添加远程仓库:

bash 复制代码
git remote add origin <新仓库地址>

这种方法会删除所有 commit 历史,彻底清空仓库,适用于想重新开始的情况。


更换远程仓库

方法 1:查看当前远程仓库

可以先查看当前仓库中已有的远程仓库:

bash 复制代码
git remote -v

这个命令会列出所有的远程仓库及其对应的 URL,找到 origin 看它的地址是否正确。

方法 2:更新已有的远程仓库地址

如果只是想更改现有 origin 的 URL,可以使用以下命令:

bash 复制代码
git remote set-url origin <新地址>

<新地址> 替换为新的远程仓库地址。

方法 3:删除并重新添加远程仓库

如果不需要当前的 origin,可以先删除它,然后重新添加新的 origin

bash 复制代码
git remote remove origin
git remote add origin <新地址>

这样可以确保 origin 是你想要的新远程仓库。

方法 4:添加不同名称的远程仓库

如果希望保留现有的 origin,但还想添加一个新的远程仓库,可以使用不同的名称,比如 new-origin

bash 复制代码
git remote add new-origin <新地址>

1. 检查和确认新远程仓库

首先,确保新远程仓库的 URL 已正确配置到 origin。可以用以下命令查看当前的远程仓库:

bash 复制代码
git remote -v

如果 origin 指向你想要的新仓库地址,就可以继续下一步。

2. 推送已有的历史 commit

执行以下命令,将所有的历史 commit 推送到新远程仓库:

bash 复制代码
git push -u origin --all

此命令会将所有分支(包括历史 commit)推送到新的远程仓库。

3. (可选)推送所有标签

如果你的仓库中有标签(tags),并希望将标签也一起推送到新远程仓库,可以执行以下命令:

bash 复制代码
git push origin --tags

4. 确认推送成功

推送完成后,可以在新远程仓库的页面上查看所有 commit 和标签,确认它们已成功上传。

.gitignore配置运维总结

在 Git 项目中,合理配置 .gitignore 文件对于项目的管理和维护至关重要,特别是在大型项目中,.gitignore 的配置可以帮助避免将不必要的文件提交到仓库中。以下是 .gitignore 文件配置的运维总结:

1. 基础规则

  • 文件类型忽略 :指定忽略的文件类型,如日志文件、临时文件等。

    plaintext 复制代码
    *.log          # 忽略所有 .log 文件
    *.tmp          # 忽略所有 .tmp 文件
  • 文件夹忽略 :忽略特定文件夹(包括所有子文件夹)。

    plaintext 复制代码
    temp/          # 忽略 temp 文件夹
    build/         # 忽略 build 文件夹
  • 特定文件忽略 :忽略某些特定文件。

    plaintext 复制代码
    .DS_Store      # 忽略 macOS 系统文件
    config.json    # 忽略指定配置文件

2. 通配符及高级用法

  • 单星号 (*):匹配任意数量字符(不包括路径分隔符)。

  • 双星号 (**) :匹配任意数量的目录层级。

    plaintext 复制代码
    **/node_modules/   # 忽略所有层级中的 node_modules 文件夹
    **/*.log           # 忽略所有层级中的 .log 文件
  • 方括号 ([]) :匹配方括号内的任意字符。

    plaintext 复制代码
    log[1-3].txt   # 忽略 log1.txt, log2.txt, log3.txt

3. 常见开发环境配置

  • IDE 文件 :不同开发工具生成的文件需要忽略。

    plaintext 复制代码
    .vscode/       # VS Code 配置
    .idea/         # IntelliJ IDEA 配置
    *.suo          # Visual Studio 用户配置
  • 操作系统文件

    plaintext 复制代码
    .DS_Store      # macOS
    Thumbs.db      # Windows
  • 项目依赖

    plaintext 复制代码
    node_modules/      # Node.js 项目依赖
    vendor/            # PHP Composer 依赖

4. 动态生成的文件

忽略编译生成的文件和缓存,避免将构建产物纳入版本控制:

plaintext 复制代码
dist/             # 生产环境文件夹
*.class           # Java 编译文件
*.pyc             # Python 编译字节码
*.o               # C/C++ 编译文件
coverage/         # 测试覆盖率报告

5. 例外规则

.gitignore 中可以使用 ! 符号来设置例外规则,让某些特定文件被追踪。例如:

plaintext 复制代码
*.log             # 忽略所有 .log 文件
!important.log    # 追踪 important.log 文件

6. 全局 .gitignore 配置

可以配置系统范围的 .gitignore,使特定文件或文件类型在所有项目中都被忽略。配置方式如下:

  1. 创建全局 .gitignore 文件:

    bash 复制代码
    touch ~/.gitignore_global
  2. 设置 Git 使用该文件:

    bash 复制代码
    git config --global core.excludesfile ~/.gitignore_global

7. 更新 .gitignore 后的缓存清理

在配置 .gitignore 后,若需要将已有的文件从 Git 中移除,可以用以下命令清理缓存:

bash 复制代码
git rm -r --cached .
git add .
git commit -m "更新 .gitignore 配置"
相关推荐
大猫和小黄4 小时前
Windows、CentOS环境下搭建自己的版本管理资料库:GitBlit
linux·服务器·windows·git
孤水寒月4 小时前
Git忽略文件.gitignore
git·elasticsearch
DN金猿13 小时前
git命令恢复/还原某个文件、删除远程仓库中的文件
git
DWei_GaGa15 小时前
Git:查看分支、创建分支、合并分支
git
涵信17 小时前
Windows11 安装 Ubuntu-20.04,同时安装配置 zsh shell,配置 git 别名(alias),大大提高开发效率
linux·git·ubuntu·bash
喝鸡汤20 小时前
一起学Git【第五节:git版本回退】
git
web Rookie21 小时前
Git的简介
git
苏三有春1 天前
五分钟学会如何在GitHub上自动化部署个人博客(hugo框架 + stack主题)
git·go·github
high20112 天前
【Git】-- 版本说明
git
kaixin_learn_qt_ing2 天前
git clone
git