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 配置"
相关推荐
火车叼位16 小时前
用脚本固化 Git Squash 合并与文件排除流程
git
wunaiqiezixin18 小时前
git常用命令总结
git
Pluchon1 天前
萌萌技术分享笔记——Java综合项目
java·开发语言·笔记·git·github·mybatis·postman
九思x1 天前
Git脚本汇总
git
jiayong231 天前
git分支合并的切换逻辑详解
git
思麟呀1 天前
Git入门
git
Ws_1 天前
Git + Gerrit 第八课:reset 与 revert 撤销提交
git
Qres8211 天前
hexo博客上传github page
git·github·hexo
繁星星繁1 天前
Git 入门之道:从版本流转到基础操作
大数据·git·elasticsearch
wh_xia_jun2 天前
Git 分支合并操作备忘录
git