Git 有四个部分:工作区(Working Tree)、暂存区(Index/Stage)、本地仓库(Repository)、远程仓库(Remote)。
1.git
命令 | 描述 |
git –help | 查看git帮助 |
git help <command> | 查看git子命令帮助 |
git –version | 查看git版本 |
git -C <path> <command> | 在指定路径运行git命令 |
2.配置
选项 | 配置文件 |
–system | /etc/gitconfig 文件: 作用域为所有用户。覆盖规则为:local > global > system。 |
–global | ~/.gitconfig 或 ~/.config/git/config 文件:作用域为只针对当前用户。覆盖规则为:local > global > system。 |
–local | 当前本地仓库目录/.git/config 文件:作用域为只针对当前本地仓库(需在本地仓库目录下运行)。覆盖规则为:local > global > system。 |
命令 | 描述 |
git config –list | 查看所有配置 |
git config –list –show-origin | 查看所有配置以及所在文件 |
git config <key> | 查看指定配置 |
git config <key> <value> | 新增配置 |
git config –global user.name “<name>” | 配置用户级用户名 |
git config –global user.email “<email>” | 配置用户级邮件地址 |
git config –global init.defaultBranch <name> | 配置要在新的本地仓库中使用的默认初始分支名称。 |
git config <key> –unset | 删除指定配置 |
git config –global alias.<aliasname> <command> | 给指定命令别名 |
git config –global alias.ci commit | 给commit命令添加别名为ci |
git config –global alias.last ‘log -1 HEAD’ | 给一段命令添加别名last |
3.本地仓库
命令 | 描述 |
git init | 初始化一个已存在目录为本地仓库,并会新增一个名为 .git 的子目录。 |
git init <dir> | 新建一个目录,将其初始化为本地仓库,并会新增一个名为 .git 的子目录。 |
git clone <url> | 克隆远程仓库到当前目录下的子目录(子目录名称为远程仓库名称) |
git clone <url> <dir> | 克隆远程仓库到指定目录 |
4.暂存
git add
是一个多功能命令,可以用它开始跟踪新文件(相当于添加到暂存区),或者把已跟踪的文件添加到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等。
命令 | 描述 |
git add . | 添加所有文件到暂存区 |
git add [file1] [file2] | 添加指定文件到暂存区 |
git add [dir] | 添加指定目录(包括子目录)到暂存区 |
5.提交
命令 | 描述 |
git commit -m ‘<msg>’ | 提交暂存区到本地仓库 |
git commit -a -m ‘<msg>’ | 提交工作区自上次提交之后的变化,跳过暂存区,直接到本地仓库 |
git commit –amend | 使用新的提交替代上一次提交 |
git commit –amend -m ‘<msg>’ | 使用新的提交替代上一次提交(带提交信息) |
git log | 查看提交日志 |
git log -2 | 查看最近2次提交日志 |
git log -p | 查看提交日志(包含差异) |
git log –stat | 查看提交日志(包含简略的差异) |
git log –pretty=oneline | 查看提交日志(一行显示,提交名为完整的40字节16进制) |
git log –abbrev-commit | 查看提交日志(提交名为前面代表唯一性的多字节16进制,一般为7字节) |
git log –oneline | 查看提交日志(一行显示,提交名为前7字节16进制),相当于–pretty=oneline + –abbrev-commit。 |
6.差异
命令 | 描述 |
git diff | 查看尚未暂存的文件更新了哪些部分 |
git diff –cached | 查看暂存区与最后一次提交之间的差异 |
git diff <commit1> <commit2> | 查看两次提交之间的差异 |
7.撤销
命令 | 描述 |
git clean | 从工作区中删除未跟踪文件 |
git rm [file] | 删除工作区和暂存区中的文件,相当于rm + git add。 |
git rm –cached [file] | 仅删除暂存区,但该文件还会保留在工作区 |
git mv <source> <destination> | 重命名文件并添加到暂存区,相当于mv + git rm + git add。 |
git restore <file> | 丢弃工作区的改动(前提必须首先添加到暂存区被跟踪) |
git restore –staged <file> | 恢复暂存区中的指定文件到工作区 |
git reset <file> | 同git restore –staged <file> |
git reset –hard | 相当于先git restore –staged <file>,再git restore <file>。 |
git reset <commit> | 重置到指定提交(向前或向后),同时重置暂存区,不丢弃工作区的改动 |
git reset –hard <commit> | 重置到指定提交(向前或向后),同时重置暂存区,丢弃工作区的改动 |
git checkout — <file> | 同git restore <file> |
8.状态
9.标签
命令 | 描述 |
git tag [-l|–list] | 查看所有标签 |
git tag -l “v1.8.5*” | 查看匹配指定模式的标签 |
git show v1.8 | 查看指定标签信息 |
git tag -a v1.8 | 新增一个附注标签 |
git tag -a v1.8 -m “my version 1.8” | 新增一个附注标签并附属信息 |
git tag v1.4-lw | 新增一个轻量标签 |
git tag -a v1.2 9fceb02 | 后期给过去的提交新增一个附注标签 |
git tag -d <tag> | 删除指定标签 |
git checkout <tag> | 查看某个标签所指向的文件版本 |
git push origin –tags | 推送所有不在远程仓库的标签到远程仓库 |
git push origin v1.5 | 推送标签到远程仓库 |
git push origin –delete <tag> | 删除远程仓库的标签 |
10.远程仓库
命令 | 描述 |
git remote | 查看所有远程仓库(仅显示名称简写) |
git remote -v | 查看所有远程仓库(显示名称简写和对应url) |
git remote show <remote> | 查看指定远程仓库信息 |
git remote get-url <shortname> | 查看远程仓库url |
git remote add <shortname> <url> | 绑定一个远程仓库,并提供一个名称简写 |
git remote rename <oldshortname> <newshortname> | 重命名远程仓库名称简写 |
git remote set-url <shortname> <newurl> [<oldurl>] | 更改远程仓库url |
git remote remove <shortname> | 删除远程仓库 |
11.分支
命令 | 描述 |
git branch -a | 查看所有本地和远程分支 |
git branch | 查看所有本地分支 |
git branch -v | 查看所有本地分支(包含每一个分支的最后一次提交) |
git branch -r | 查看所有远程分支 |
git branch –merged | 查看哪些分支已经合并到当前分支 |
git branch –no-merged | 查看所有包含未合并工作的分支 |
git branch <branch> | 新增一个本地分支 |
git branch -m [<oldbranch>] <newbranch> | 重命名本地分支 |
git branch -d <branch> | 删除本地分支 |
git branch -d -r <branch> | 删除远程分支 |
git switch <branch> | 切换到指定本地分支 |
git checkout <branch> | 同git switch <branch> |
git checkout -b <newbranch> | 新增一个分支并立即切换此新分支,相当于git branch + git checkout |
git fetch [remote] [branch] | 获取远程仓库分支的相对于本地仓库对应分支没有的所有变化,但不合并到本地仓库对应分支(默认origin远程仓库和所有分支)。 |
git merge <branch> | 合并指定分支到当前分支。 |
git pull [remote] [branch] | 相当于git fetch + git merge(默认origin远程仓库和master分支)。 |
git push [remote] [branch] | 推送本地仓库分支到远程仓库分支(默认origin远程仓库和master分支)。 |
git push origin –delete <branch> | 删除远程分支,同git branch -d -r <branch> |
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/linux/git/23094.html