前言
梳理一些 git 常用的命令,满足日常的使用没有问题
一、准备工作
1、配置用户
git config --list # 获取默认配置,如果当前地址中仓库信息不存在,则查看全局
git config --local --list # 本地仓库配置 高优先级
git config --global --list # 当前用户配置 中优先级
git config --system --list # 系统配置 低优先级
git config --local key "value" # 本地仓库配置
git config --global key "value" # 配置git当前用户
git config -e # 进入 vim 编辑模式, 或者 --edit
git config --global user.name "test" # 配置用户名,global-当前用户, system-全部用户
git config --global user.email "test@qq.com" # 配置邮箱
2、克隆代码
git clone url # 克隆远程项目到本地, url: 远程项目的地址
git clone url project_name # 克隆远程项目到本地, 并修改项目名为project_name
二、分支管理
1、查看远程仓库
git remote -v # 查看所有远程仓库
git remote add 别名 远程地址 # 创建远程仓库别名,如:git remote add dev git@github.com:test/runoob-git-test.git
2、查看分支
git branch # 查看本地分支
git branch -r # 查看远程分支
git branch -a # 查看所有分支
3、创建分支
git branch name # 创建 name 分支
git checkout name # 切换到 name 分支
git checkout -b name # 创建并切换到 name 分支
4、删除分支
git branch -d name # 删除 name 分支
5、合并分支
git merge master # 把 master 分支合并到当前所在的分支,如果有冲突需在本地解决冲突后再提交到远端
三、提交代码
1、更新代码
git pull # 拉取远程分支的最新代码,建议在创建分支前先拉取最新的代码到master
git pull origin dev_name # 同上
git fetch origin dev_name # 从远端拉取分支到本地
git checkout -b dev_name origin/dev_name # 从 origin/dev_name 创建本地分支并切换
2、查看更改
git status # 显示当前工作区修改过的文件
git diff test.java # 查看该文件修改了哪些内容
3、提交代码
git add test.java # 仅提交 test.java 到暂存区,git add *.java 仅提交所有修改的java文件到暂存区
git add src/ # 仅提交src目录下的更新
git add . # 提交所有修改的文件到暂存区,‘.’表示所有文件
git restore <file> # 删除暂存区的文件
git rm --cached . # 删除暂存区的所有文件
git commit -m "desc" # 提交暂存区的文件到本地仓库,引号中添加描述信息(本地提交的说明)
git push # 推送本地仓库的内容到远程仓库
4、版本回退
git reset --hard HEAD^ # 回退到上一个版本,HEAD-当前版本
git reset --hard HEAD^^ # 回退到上上一个版本
git reflog # 查看简写日志
git reset --hard 37fa871 # 回退到指定版本,37fa871是commitId前几位
四、辅助命令
1、git stash
利用栈的原理(先入后出),将当前分支修改的内容先保存到栈中,切换到别的分支再弹出来
应用场景:
1、当正在 dev 分支上开发某个项目,这时项目中出现一个bug,需要紧急修复,但是正在开发的内容只完成一半,还不想提交,这时可以用 git stash 命令将修改的内容保存至堆栈区,然后顺利切换到 hotfix 分支进行 bug 修复,修复完成后,再次切回到 dev 分支,从堆栈中恢复刚刚保存的内容。
2、由于疏忽,本应该在 dev 分支开发的内容,却在 master 上进行了开发,需要重新切回到 dev 分支上进行开发,可以用 git stash 将内容保存至堆栈中,切回到 dev 分支后,再次恢复内容即可。
git stash # 将所有未提交的修改(工作区和暂存区)保存至栈中
git stash list # 查看当前栈中的内容
git stash drop stash@{0} # 删除某个内容 {0}, {1} ...
git stash pop # 将当前栈中的内容弹出(从栈中删除),并应用到当前分支对应的工作目录上
git stash apply # 作用同 git stash pop,但该命令不会将内容从栈中删除
git stash clear # 清除栈中的所有内容
2、查看日志
git reflog # 查看简写日志
git log # 查看详细日志
git log 37fa871 # 查看指定日志,37fa871是commitId前几位