Git命令[速查]

2022-02-13  本文已影响0人  BarretX

工作中用到git时,很多命令经常需要网上查找,浪费了大量时间。因此,决定写本文来收录常用的git命令,方便工作速查,并会不但更新完善。

配置系列

  1. git config 工具专门用来配置git相应的工作环境变量,这些环境变量决定了git在各个环节的工作方式和行为。
    • git config --list可以查看已有配置信息
    • 配置用户名和邮箱:
      git config --global user.name "someone"
      git config --global user.email "someone@company.com"
      
    • git config --system 修改配置文件[/etc/gitconfig]
    • git config --global 修改配置文件[~/.gitconfig]
    • 配置优先级: [工作目录中的 .git/config] > [~/.gitconfig] > [/etc/gitconfig]
  2. 配置sshgit可以通过httpsssh两种协议与远程仓库进行通讯。配置ssh的基本思路是:本地生产ssh密钥对--->在仓库端添加本地生产的public key
    • 本地生产ssh密钥对: ssh-keygen -t rsa
    • ~/.ssh/id_rsa.pub即为public key

基本操作

  1. git add将工作区的文件添加到暂存区
  2. git restore撤销git追踪过的文件的修改
    • git restore --worktree/-W some_file 撤销文件在工作区的修改
    • git restore --staged/-S some_file撤销文件在暂存区的修改,将状态恢复到add之前
    • git restore -s commit_id some_file将当前工作区切换到某一次commit
  3. git clean从工作目录中删除所有git没有追踪过的文件
    • git clean -n演习,列出那些文件将被删除
    • git clean -df删除当前目前下未被``git```追踪过的文件和文件夹
  4. git reset [--soft | --mixed | --hard] commit_id回退版本,--mixed为默认选项
    • git reset --hard commit_id将仓库、暂存区和工作区均回退到某个版本
  5. git checkout实现git restoregit switch的功能
    • git checkout some_branch/git switch some_branch切换分支
    • git checkout -b new_branch/git switch -c new_branch创建并切换分支
  6. git commit提交
  7. git push推送分支
    • git push推送到关联的远程分支
    • git push origin some_local_branch:some_remote_branch推送到远程分支
    • git push origin :some_remote_branch删除远程分支
    • git push origin --delete some_remote_branch删除远程分支
  8. git fetch从远程仓库更新本地仓库
  9. git rebase变基
    • git rebase some_branchsome_branch为基础执行变基
    • git add解决rebase冲突
    • git rebase --abort终止变基
    • git rebase --continue继续变基
  10. git merge分支合并
    • git add+git commit解决merge冲突
  11. git pull等同于git fetch+git merge
  12. git revert撤销某次操作,并将撤销操作作为新的提交
  13. git cherry-pick挑选commit进行合并
    • git cherry-pick commit-id挑选commit_id进行合并
    • git add解决cherry-pick冲突
    • git cherry-pick --continue继续合并
    • git cherry-pick --abort放弃合并
  14. git swich切换分支
    • git switch some_branch切换分支
    • git switch -c new_branch创建并切换分支
  15. git log --oneline单行显示提交记录
  16. git status查看git工程当前状态
  17. git diff
    • git diff commit_id查看commit_id的修改
    • git diff commit_id1 commit_id2查看两次提交之间的差异
    • git diff --cached/--staged查看暂存区和仓库之间的差异
    • git diff branch1 branch2查看两分支之间的差异
  18. git remote remove origin 移除源origin
  19. git remote add origin https://*.git 增加源origin

分支管理

  1. 通过远程分支创建本地分支:git checkout -b some_local_branch origin/some_remote_branch
  2. 通过当前分支创建分支:git checkout -b some_branch
  3. 切换分支:git checkout some_branch
  4. 合并分支:git merge some_branch
  5. 变基分支:git rebase some_branch
  6. 删除分支:git branch -d some_branch
  7. 查看分支:git branch
  8. 将本地分支与远程分支关联:git branch --set-upstream-to=origin/some_remote_branch some_local_branch
  9. 推送分支:git push origin some_local_branch:some_remote_branch
  10. 强推分支:git push -f

冲突解决

  1. git merge冲突解决:git add + git commit
  2. git rebase冲突解决:git add + git rebase --continue
  3. git cherry-pick冲突解决:git add + git cherry-pick --continue

修改commit历史

  1. 修改当前commit的内容和message
    • git commit --amend将暂存区的内容合并到上一次提交,并可以修改message
  2. 修改历史commit:

文件权限

  1. 查看文件权限:git ls-files --stage some_file
  2. 修改文件权限:git update-index --chmod=+x some_file

子模块

  1. 增加子模块:git submodule add submodule_url
  2. 获取子模块:
    • 方式一:git clone mainmodule_url --recurse-submodules
    • 方式二:在主项目中执行git submodule init+git submodule update
    • 方式三:在主项目中执行git submodule update --init --recursive
  3. 更新子模块到commit_id
    • 进入子模块并更新:git fetch & git rebase & git reset --hard commit_id
    • 推到主模块并提交:git push
  4. 查看子模块:git submodule
上一篇下一篇

猜你喜欢

热点阅读