git的基本使用

  1. 配置用户名和邮箱: git config --global user.name "xxx" / git config --global user.email "xxx"
  2. 创建版本库: git init
  3. 添加文件到暂存区: git add readme.txt
  4. 提交暂存区的文件到本地库: git commit -m "说明"
  5. 查看仓库状态: git status
  6. 查看工作区与暂存区的区别: git diff readme.txt
  7. 查看提交日志: git log 或 git log --pretty=oneline
  8. 版本回退
    7.1 回退到上一个版本: git reset --hard head^
    7.2 回退到上两个版本: git reset --hard head^^
    7.3 回退到上100个版本: git reset --hard head~100
    7.4 回退到指定的版本号: git reset --hard 版本号
  9. 查看执行的历史命令: git reflog
  10. 查看工作区与本地库的区别: git diff head -- readme.txt
  11. 撤销修改
    10.1 丢弃暂存区的修改: git restore --staged readme.txt
    10.2 用暂存区/本地库的内容还原工作区: git checkout -- readme.txt
    说明:如果暂存区有该文件就用暂存区的;
    如果暂存区没有该文件本地库有该文件,就用本地库的;
    如果暂存区和本地库都没有就会报错;
    10.3 用本地库还原暂存区: git reset head readme.txt
    10.4 丢弃工作区的修改: git restore readme.txt
  12. 删除文件: git rm readme.txt
  13. 关联一个远程库: git remote add origin 远程库地址
  14. 第一次推送master分支: git push -u origin master (以后推送可以把-u去掉)
  15. 将远程库克隆到本地: git clone 远程库地址
  16. 分支管理
    15.1 创建dev分支: git branch dev
    15.2 切换到dev分支: git checkout dev 或 git switch dev
    15.3 创建并切换到dev分支: git checkout -b dev 或 git switch -c dev
    15.4 查看当前分支: git branch
    15.5 合并dev分支: git merge dev
    15.6 删除dev分支: git branch -d dev 或 强行删除分支git branch -D dev
    15.7 查看分支合并图: git log --graph 或 git log --graph --pretty=oneline --abbrev-commit
    15.8 禁用fast forward模式进行合并分支: git merge --no-ff -m "merge with no-ff" dev
  17. 对stash的操作
    16.1 查看stash: git stash list
    16.2 创建stash: git stash
    16.3 恢复stash: git stash apply stash@{0}
    16.4 删除stash: git stash drop stash@{0}
    16.5 恢复并删除stash: git stash pop
  18. 拉取指定的提交: git cherry-pick
  19. 指定本地 master 分支和远程 origin/master 的连接: git branch --set-upstream-to=origin/master master
  20. 查看远程库信息: git remote 或 git remote -v
  21. 推送分支: git push origin master
  22. 抓取远程分支: git checkout -b dev origin/dev
  23. rebase命令: git rebase
  24. 标签的使用
    23.1 创建标签: git tag 或 git tag -a v0.1 -m "first tag" 1094adb
    23.2 查看所有标签: git tag
    23.3 查看某个标签的信息: git show
    23.4 删除本地标签: git tag -d v0.1
    23.5 推送标签: git push origin v0.1 或 git push origin --tags
    23.6 删除远程分支: git push origin :refs/tags/v0.1
  25. 强制添加到git: git add -f App.class
  26. 检查忽略规则: git check-ignore -v App.class
  27. 停止追踪某个文件: git rm --cached 文件名
  28. 配置命令别名(使用"last"代表"log -1"): git config --global alias.last "log -1"
  29. 查看当前仓库配置: git config --list
  30. 删除远程库:git remote rm origin

说明:

  • head指向的就是当前分支
  • git创建分支就是增加一个指针,然后改变head的指向,工作区没有任何变化
  • 执行git init所在的文件夹就是工作区,.git文件夹里包含暂存区和本地版本库
  • git记录的是“修改”,包括文件的修改、新增/删除文件
  • git默认使用fast forward模式进行合并分支
  • rebase操作可以把本地未push的分叉提交历史整理成直线
  • rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比
  • Git的标签是版本库的快照,但其实它就是指向某个commit的指针
  • 配置Git的时候,加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用
  • 按“q”结束日志的查看
  • 如果pull的时候提示:fatal: refusing to merge unrelated histories
    git pull origin master --allow-unrelated-histories
    如果设置了默认: git pull origin master --allow-unrelated-histories

附:

  • ssh key位置在用户的.ssh目录下
  • 生成ssh key:打开git bash执行ssh-keygen -t rsa -C "邮箱"
  • Git创建一个分支很快,因为除了增加一个dev指针,改改HEAD的指向,工作区的文件都没有任何变化
  • git日志配置:git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

参考:https://www.liaoxuefeng.com/wiki/896043488029600

posted @ 2019-10-10 19:15  Null-Point  阅读(258)  评论(1编辑  收藏  举报