Git 的使用和相关问题

Git 新特性

  1. Git 2.23

    • git switch:简化了分支切换操作,取代了 git checkout 的一部分功能
    • git restore:提供了一个新的命令用于恢复文件状态,代替 git checkout 和 - git reset 的一些功能
    • git rebase --rebase-merges:保留变基过程中的合并提交
  2. Git 2.24

    • git sparse-checkout:允许用户只检出仓库的一部分内容,节省磁盘空间和提高操作效率。
    • git commit --fixup--squash:在交互式变基中用于标记修复或合并提交。
    • git log --format:提供了更灵活的日志格式选项。
  3. Git 2.25

    • git switchgit restore 的增强:进一步改进了这两个命令的功能和稳定性。
    • git log --graph --oneline:改进了图形化日志的显示。
  4. Git 2.26

    • git restore --source:允许指定恢复内容的源。
    • git stash:增强了 git stash 的功能,支持对未跟踪文件的操作。
  5. Git 2.27

    • git commit --verbose:在提交时显示变更的详细信息。
    • git diff 的增强:改进了 diff 显示,增加了 –color-words 选项。
  6. Git 2.28

    • git configincludeIf 选项:允许根据不同条件包括配置文件。
    • git remote:增强了远程管理功能,支持更多的配置选项。
  7. Git 2.29

    • git diff--inter-hunk-context 选项:增强了 diff 输出的上下文显示功能。
    • git pull--rebase:改进了拉取操作的变基选项。
  8. Git 2.30

    • git commit--no-verify:在提交时跳过钩子验证。
    • git merge--rerere-autoupdate:增强了合并冲突的自动解决功能。
  9. Git 2.31

    • git log--notes 选项:允许在日志中显示附加的注释。
    • git switch --orphan:创建一个新的孤立分支,方便从空白状态开始。
  10. Git 2.32

    • git commit --dry-run:提供了一个预查看提交的选项。
    • git diff--stat 选项:改进了统计信息的显示。
  11. Git 2.33

    • git branch--show-current:显示当前分支的简化命令。
    • git log--merges:更好地显示合并提交。
  12. Git 2.34

    • git rebase--exec 选项:在每个变基操作后执行指定命令。
    • git status--short 选项:简化状态显示。

Git 覆盖所有提交

git 没有提供直接指令覆盖所有提交,但是在某些场合下,我们可能有这个需求,例如:从某个克隆仓库修改

思路:

  • 创建一个独立分支
  • 初始化仓库
  • 删除 main 分支
  • 将新分支修改为 main
  • 强制提交
1
2
3
4
5
6
git checkout --orphan temp_branch
git add .
git commit -m "init"
git branch -D main
git branch -m temp_branch main
git push -f ogigin main

注意:此过程不能撤销,请三思!

问题和解决

git status 不能显示中文

在默认设置下,中文文件名在工作区状态输出,中文名不能正确显示,而是显示为八进制的字符编码

解决办法:

1
git config --global core.quotepath false

12.91k 字
12篇文章