git 基本命令
工作区管理
shell
# 命令用来从工作目录中删除所有没有跟踪(tracked)过的文件
git clean
# 是一次clean的演习, 告诉你哪些文件会被删除
git clean -n
# 删除当前目录下没有tracked过的文件,不会删除.gitignore指定的文件
git clean -f
# 删除当前目录下没有被tracked过的文件和文件夹
git clean -df
# 将没有放入到暂存区的所有文件恢复
git checkout .
#放弃指定文件的修改
git checkout file
# 暂存现在工作区的工作,然后恢复原来为编辑的状态,但是不包括未被跟踪的文件,也就是新建的文件
git stash
# 显示现在正在暂存的工作
git stash list
# 恢复stash暂存区的工作
git stash apply stash@{0}
暂存区管理
shell
# 提交所有修改和新增的文件
git add .
git add -u
# 撤销暂存区的所有文件
git reset HEAD
# 撤销暂存区的指定文件
git reset HEAD file
# 查看暂存区文件列表
git ls-files -s
# 查看暂存区文件内容
git cat-file -p 6e9a94
# 提交一次版本
git commit -m ‘提交信息’
# 提交一次版本, 同git add . && git commit -m "message"
git commit -am ‘提交信息’
# 将误删除文件从上次版本库中恢复
git checkout HEAD -- deletedFile
# 将误删除文件从上上次提交的版本库中恢复
git checkout HEAD^ -- deletedFile
版本库管理
shell
#使用reset恢复到历史提交点,重置暂存区与工作目录的内容。
# 保留工作区的内容,不保留暂存区 等同 git reset --mixed
git reset
# 保留工作区的内容,把文件差异放进暂存区,即保留暂存区
git reset --soft
# 清空工作区和暂存区的改动
git reset --hard
# 恢复前三个版本
git reset --hard HEAD^^^
# (同上)恢复前三个版本
git reset --hard HEAD~3
# 恢复到指定提交版本(先通过 git log 查看版本号)
git reset --hard b7b73147ca8d6fc20e451d7b36
# 放弃已经add 暂存区的文件hd.js
git reset HEAD hd.js
# 可以查询之前进行的 每一次 git 命令,即包括reset前的所有日志,即显示每一步操作信息
git reflog
分支管理 branch
shell
#分支用于为项目增加新功能或修复Bug时使用。
# 创建分支
git branch dev
# 查看分支
git branch
# 切换分支
git checkout dev
# 创建并切换分支
git checkout -b feature/bbs
# 查看远程分支
git branch -r
# 将分支 main 更新为master
git branch -m main master
# 合并dev分支到master
git checkout master
git merge dev
# 删除分支
git branch -d dev
# 删除没有合并的分支
git branch -D dev
# 删除远程分支
git push origin :dev
# 查看未合并的分支(切换到master)
git branch --no-merged
# 查看已经合并的分支(切换到master)
git branch --merged
# 查看两个分支的变动
git diff branch-a..branch-b
日志查看 log
shell
#查看日志
git log
# 查看最近2次提交日志并显示文件差异
git log -p -2
# 显示已修改的文件清单
git log --name-only
# 显示新增、修改、删除的文件清单
git log --name-status
# 一行显示并只显示SHA-1的前几个字符
git log --oneline
# 一行显示并只显示SHA-1的前几个字符及最近的5条信息
git log --oneline -5
# 过滤日志信息
git log --oneline --grep="filer info"
# 查看特定时间段日志
git log --before='1 day'
git log --after='1 day'
远程管理 git remote
sh
# 添加远程分支
git remote add origin https://gitee.com/loveagri/blank.git
# 查看远程分支
git branch -r
# 查看远程分支关联地址
# origin git@gitee.com:loveagri/blank.git (fetch)
# origin git@gitee.com:loveagri/blank.git (push)
git remote -v
推送分支到远程 git push
sh
# todo
远程拉取 git pull, git fetch, git merge
sh
# 拉取远程分支但是不合并
git fetch
# 合并远程分支
git merge
#直接拉取远程分支
git pull
git diff
sh
# 查看两个分支的变动
git diff branch-a..branch-b