常见问题

# 常见问题

# 版本回退

  1. 查看提交记录

    复制指定commit的版本id

    git log
    
    1
  2. 版本回退

    git reset
    
    1
    • git reset --soft

      暂存区、工作区保持不变,本地仓库回滚到指定版本commit完成后的那一刻

    • git reset --mixed

      工作区保持不变,本地仓和暂存区 回滚到指定版本。

    • git reset --hard

      本地仓、暂存区、工作区都回滚到指定版本。 图片

简述:

  • soft(直奔暂存区)
    • 工作区:不变
    • 暂存区:不仅保留当前,还有指定版本到当前版本的提交内容
  • mixed(直奔工作区)
    • 工作区:不仅保留当前,还有指定版本到当前版本的提交内容
    • 暂存区:当前的内容,返回到工作区
  • hard(直接还原)
    • 工作区:没了
    • 暂存区:没了

# 修改commit message

git commit --amend
1

# 查看修改内容

查看工作区和版本库里面最新版本的区别:

git diff <file>
1

# 版本比对

git diff [first-branch]...[second-branch]

优化处理:

  1. 只显示变更文件

    git diff --name-only
    
    1
  2. 变动文件状态(添加,修改,还是删除)

    git diff --name-status
    
    1

# 复制修改内容

  1. 记录 commit_id
  2. git cherry-pick <commit_id>

# 远程强制覆盖本地

git fetch -all
git reset --hard origin/<branch>
git pull
1
2
3

一键copy

git fetch --all &&  git reset --hard origin/<branch> && git pull
1

# 查看commit id属于哪个分支

git branch --contains <commit id>
git branch --contains <commit id> -r // 加远程
1
2

# 查找两个分支共同的祖先

git merge-base branchA branchB
1