Git | 常用命令

经常会用到Git相关的命令,所以写一篇文章记录下这其中比较常用的命令

常用命令

  1. 新建仓库

    1
    
    git init
    
  2. 克隆仓库

    1
    
    git clone [仓库的地址]
    
  3. 新建分支

    1
    
    git branch [分支名]
    
  4. 切换分支

    1
    
    git checkout [分支名]
    
  5. 创建并切换分支

    1
    
    git checkout -b [分支名] [仓库名/分支名]
    
  6. 放弃全部更改

    1
    
    git checkout -- .
    
  7. 提交

    1
    
    git commit -m '备注的消息'
    
  8. 推送

    1
    
    git push [仓库名] [分支名]
    
  9. 拉取

    1
    
    git push [仓库名] [分支名]
    
  10. 合并-方式1(Merge)

    1. 切换到主分支
    git checkout main
    
    1. 将需要的分支合到主分支上
    git merge fixBug
    
  11. 合并-方法2(Rebase)

    1. 切换到主分支
    1
    
    git checkout main
    
    1. 将目标分支合并到主分支上
    1
    
    git rebase main[目标分支] fixBug[需要合并的分支]   
    
  12. 移动提交记录(Cherry-pick)

    本质是将提交复制到当前所在的分支

    1. 切换到主分支
      git checkout main
      
    2. 将想要的提交记录的commit id值记下,然后将其cherry-pick到main上
      1
      
      git cherry-pick asd2f12 fasddf
      
  13. 版本回退-方法1(reset)

    1
    
    git reset --hard [回退记录的commit id]
    
  14. 版本回退-方法2(revert)

    比如提交记录为A -> B -> C -> D

    使用命令

    1
    
    git revert B^…D
    

    现在提交记录为A-> B ->C -> D -> D'-> C' -> B'

    ❕注:ABCD为4个不同提交记录的commit id

    不生成3个新的提交,生成一个提交的写法

    1
    2
    
    git revert -n B^…D
    git commit -m "revert B to D"
    
  15. 添加远程仓库

    1
    
    git remote add [远程仓库名] [仓库的地址]
    
  16. 查看所有远程仓库

    1
    
    git remote -v
    
  17. 删除远程仓库

    1
    
    git remote rm [远程仓库名]
    
  18. 修改远程仓库地址

    1
    
    git remote set-url [远程仓库名] [仓库的地址]
    
  19. 临时保存更改(Stash)

    1
    
    git stash save '保存的名字'
    
  20. 查看已保存的临时更改的列表

    1
    
    git stash list
    
  21. 取出(恢复)所有临时更改

    1
    
    git stash pop
    
  22. 取出特定临时更改

    1
    
    git stash list
    

    显示如下内容

    stash@{0}: ....
    stash@{1}: ....
    stash@{2}: ....
    stash@{3}: ....
    stash@{4}: ....
    

    比如要取出stash@{1}

    git stash pop stash@{0}
    

    ❕注:PowerShell 中使用的时候可能会报error: unknown switch e,这是因为命令中的花括号({})被 PowerShell 认为是代码块,会将其作为代码执行,将花括号进行转义即可正常使用

    1
    
    git stash pop stash@`{0`}
    

最后推荐一个学习Git命令的网站——learngitbranching

截图

参考文献