这篇文章我们学习一些 Git 的常用命令,文章的目录如下:
git init
git clone
git add
git rm
git mv
git commit
git branch
git checkout
git merge
git remote
git push
git pull
git status
git log
git show
git reflog
git diff
git reset
git config
git init
> # 初始化本地仓库
> git init
git clone
> # 克隆远程仓库
> git clone <远程仓库地址>
> # 克隆远程仓库,并指定本地仓库名
> git clone <远程仓库地址> <本地仓库名称>
git add
> # 将工作区中的指定文件添加到暂存区,文件必须是未追踪的或已修改的
> git add <文件名称>
> # 将工作区中的所有文件添加到暂存区,包括新增的、修改的、删除的文件
> git add -A
> git add --all
> # 将工作区中的所有文件添加到暂存区,但不包括新增的文件
> git add -u
> git add --updata
> # 将工作区中当前目录下的所有文件添加到暂存区
> # 在 2.x 版本中,包括新增的、修改的、删除的文件
> # 在 1.x 版本中,不包括删除的文件
> git add .
git rm
> # 停止追踪文件,并在硬盘上删除此文件
> git rm <文件名称>
> # 停止追踪文件,并在硬盘上删除此文件,若文件在暂存区中,则从暂存区中移出
> git rm --force <文件名称>
> # 停止追踪文件,但将该文件保留在硬盘,若文件在暂存区中,则从暂存区中移出
> git rm --cached <文件名称>
git mv
> # 可以用于重命名,并把修改放入暂存区
> git mv <旧文件名> <新文件名>
git commit
> # 将暂存区中的文件提交,然后打开默认编辑器写提交信息
> git commit
> # 将暂存区中的文件提交,直接带上提交信息
> git commit -m <提交信息>
> # 将工作区中修改和删除的文件放入暂存区,然后将暂存区中的文件提交
> git commit -a
> # 使用一次新的提交,覆盖上一次的提交
> git commit --amend
git branch
> # 查看本地分支
> git branch
> # 查看本地分支,并且显示最近一次的提交信息
> git branch -v
> git branch --verbose
> # 查看远程分支
> git branch -r
> git branch --remote
> # 查看所有分支
> git branch -a
> git branch --all
> # 查看本地分支与远程分支的对应关系
> git branch -vv
> # 基于当前分支,创建新的分支
> git branch <新分支名>
> # 基于当前分支,创建新的分支,并关联远程指定分支
> git branch --set-upstream <新分支名> <远程仓库名称>/<远程分支名称>
> # 删除分支
> git branch -d <分支名>
> git branch --delete <分支名>
> # 强制删除分支
> git branch -D <分支名>
> git branch --delete --force <分支名>
> # 将当前分支关联远程指定分支
> git branch -u <远程仓库名称>/<远程分支名称>
> # 将指定分支关联远程指定分支
> git branch -u <远程仓库名称>/<远程分支名称> <本地分支名称>
git checkout
> # 切换到已有分支
> git checkout <分支名称>
> # 基于当前分支,创建新的分支,并切换到该分支
> git checkout -b <新分支名>
> # 基于本地指定分支,创建新的分支,并切换到该分支
> git checkout -b <新分支名> <本地分支>
> # 基于远程指定分支,创建新的分支,并切换到该分支
> git checkout -b <新分支名> origin/<远程分支>
> # 特别:用于撤销工作区指定文件的修改
> # 如果文件在修改后没有放到暂存区,那么就回到版本库(上一次 git commit)的版本
> # 如果文件在暂存区,然后又作修改,那么就回到暂存区(上一次 git add)的版本
> git checkout <文件名称>
> git checkout -- <文件名称>
git merge
> # 将指定分支合并到当前分支,尽量将合并解析为快进合并(若指定分支头是当前分支头的祖先,称为快进合并)
> # 如果是快进合并,则将当前分支头指向指定分支头,不会产生合并提交
> # 若不是快进合并,并且没有冲突,就会产生一个合并提交
> git merge <分支名称>
> # 将指定分支合并到当前分支,即使可以解析为快进合并,也会产生一个合并提交
> git merge --no-ff <分支名称>
> # 将指定分支合并到当前分支,如果不能解析为快进合并,就会拒绝合并然后退出
> git merge --ff-only <分支名称>
> # 如果合并发生冲突,要么中止合并,回到没有合并前的状态
> git merge --abort
> # 要么手动解决冲突,之后重新提交一个合并提交
> git add --all
> git commit
git remote
> # 显示所有远程仓库
> git remote
> # 显示指定远程仓库的详细信息
> git remote show <远程仓库名称>
> # 添加一个新的远程仓库
> git remote add <远程仓库名称> <远程仓库地址>
> # 修改远程仓库地址
> git remote set-url <远程仓库名称> <远程仓库地址>
> # 删除远程仓库
> git remote rm <远程仓库名称>
> # 重命名远程仓库
> git remote rename <旧仓库名> <新仓库名>
git push
> # 将当前分支推送到远程仓库的关联分支
> git push
> # 将所有分支推送到远程仓库的关联分支
> git push --all
> # 不管是否发生冲突,将当前分支强制推送到远程仓库的关联分支
> git push -f
> git push --force
> # 将当前分支推送到指定远程仓库的指定分支
> git push <远程仓库名称> <远程分支名称>
> # 将当前分支推送到指定远程仓库的指定分支,同时将当前分支关联到远程分支
> git push -u <远程仓库名称> <远程分支名称>
> git push --set-upstream <远程仓库名称> <远程分支名称>
> # 删除指定远程仓库的指定分支
> git push <远程仓库名称> -d <远程分支名称>
> git push <远程仓库名称> --delete <远程分支名称>
git pull
> # 拉取当前分支的关联分支,并合并到当前分支
> git pull
> # 拉取指定远程仓库的指定分支,并合并到当前分支
> git pull <远程仓库> <远程分支>
git status
> # 查看发生变更的文件
> git status
git log
> # 查看当前分支所有的提交记录
> git log
> # 查看当前分支最近两次的提交记录
> git log -2
> # 只用一行表示一次提交
> git log --oneline
> # 显示每次提交发生变化的文件
> git log --stat
> # 以图的形式显示提交记录,能看到分支合并的信息
> git log --graph --oneline
> # 只会显示提交信息中带有指定字符串的提交记录
> git log --grep <字符串>
> # 只会显示变更文件中包含指定文件的提交记录
> git log --follow <文件名称>
git show
> # 显示最近一次提交的元数据和更改的内容
> git show
> # 显示最近一次提交的元数据和发生变化的文件
> git show --name-only
> # 显示指定提交的元数据和更改的内容
> git show <commit id>
> # 显示指定提交中的指定文件的更改内容
> git show <commit id>:<文件名称>
git reflog
> # 查看命令记录,包括被删除的
> git reflog
git diff
> # 查看暂存区与工作区的差异
> git diff
> # 查看暂存区与版本库的差异
> git diff --cached
> # 查看工作区与版本库的差异
> git diff HEAD
> # 对于指定文件,查看暂存区与工作区的差异
> git diff <文件名称>
> # 对于指定文件,查看暂存区与版本库的差异
> git diff --cached <文件名称>
> # 对于指定文件,查看工作区与版本库的差异
> git diff HEAD <文件名称>
git reset
> # 将 HEAD 指针指向指定版本,暂存区重置,工作区不变
> git reset <commit id>
> # 将 HEAD 指针指向指定版本,暂存区不变,工作区不变
> git reset --soft <commit id>
> # 将 HEAD 指针指向指定版本,暂存区重置,工作区重置
> git reset --hard <commit id>
> # 回退到前一个版本
> git reset HEAD^
> git reset HEAD~1
> # 回退到前三个版本
> git reset HEAD~3
> # 特别:将指定文件从暂存区中移出,保留工作区的状态
> git reset HEAD <文件名称>
git config
> # 列出所有配置
> git config --list
> # 列出本地配置(对于当前目录适用)
> git config --list --local
> # 列出全局配置(对于当前用户适用)
> git config --list --global
> # 列出系统配置(对于所有用户适用)
> git config --list --system
> # 配置个人信息
> git config user.name "user name"
> git config user.email "user email"
> # 配置源
> git config get registry
> git config set registry https://registry.npmjs.org # 官方源
> git config set registry https://registry.npm.taobao.org # 淘宝源
> # 配置代理
> git config http.proxy "proxy address"
> git config https.proxy "proxy address"
> # 取消代理
> git config --unset http.proxy
> git config --unset https.proxy
【 若希望了解更全面、更详细的命令用法,请看 官方文档】
【 阅读更多 Git 系列文章,请看 Git学习笔记 】
原文:https://www.cnblogs.com/wsmrzx/p/12289131.html