常用git命令表

仅列出常用的命令,详细说明见https://blog.csdn.net/hustlei/article/details/87653788

本地操作

操作 命令 描述
创建版本库 git init 在当前文件夹初始化创建本地库
git clone <repository> [directory] 把远程库克隆到当前文件夹或指定文件夹
基本操作 添加文件到暂存区 git add file1 file2 把文件添加到暂存区,并跟踪。
git add . 当前目录递归添加到暂存区,并跟踪。
git add -A 添加所有文件到暂存区,并跟踪。
提交暂存区文件到本地库 git commit -m "add file" 提交暂存区文件到本地库,并编写说明
修改上一次提交的说明文本 git commit --amend  运行命令后显示vi编辑界面,可以修改内容后保存
查看工作区状态 git status 列出未跟踪、跟踪未暂存、暂存未提交的文件
git status -s 简略方式显示
工作区暂存区操作 撤销暂存 git restore --staged file 撤销指定文件暂存。并取消跟踪。(git rm --cached file也ok。git reset file用本地库恢复暂存区也类似)
比较暂存区和工作区文件 git diff [file] 比较暂存区和工作区所有文件或指定文件
删除文件 git rm file 从暂存区和工作区删除文件
移动或重命名文件 git mv file1 file2 在暂存区和工作区移动文件
从暂存区恢复文件到工作区 git restore file 取消工作区的修改。 file可以是"."。git checkout -- file用暂存区的文件覆盖工作区,暂存区文件不变。
工作区本地库操作 比较工作区和本地库 git diff head file 比较工作区的文件file与本地库的不同
从本地库恢复暂存区和工作区 git checkout head file 相当于git reset file, git checkout -- file两个命令。git restore --source=HEAD --staged --worktree file也能实现。
head可以用<commit-id>代替。
本地库操作 查看提交记录 git log [file] 显示版本库或指定文件修改记录
--pretty=oneline简化显示
--graph树形显示
查看所有操作历史 git reflog 包括被回退(删除)的commit
回退到上一个提交 git reset --hard head^ 退回到上一次提交,相当于删除本次提交。并重置暂存区和工作区。
--hard改为--soft不重置暂存区和工作区,--mixed只重置暂存区。
恢复被回退掉的提交 git reset --hard <commit-id> 用git reflog查看要恢复的id,然后恢复
stash临时保存现场操作 临时保存现场 git stash 把当前的工作区保存在stash空间内,并用本地库文件覆盖当前暂存区和工作区
查看stash保存列表 git stash list 查看stash空间内临时保存的内容。(git stash可以多次保存)
从stash恢复 git stash apply [id] 恢复最后一次或者指定的stash中的内容。--index同时恢复暂存区
删除stash内容 git stash drop [id] 删除最近一次或指定的stash中的内容

远程操作

操作 命令 描述
远程库设置 添加远程库 git remote add origin <远程库地址> 添加远程库,用origin作为远程库的本地别名。
查看远程库 git remote -v 查看所有的远程库
查看详细信息 git remote show origin 查看指定库的详细信息
重命名 git remote rename origin newname 重命名别名
删除 git remote rm origin 删除关联的远程库。
远程库本地库操作 推送 git push [origin] [master] 本地库推送到远程库。可以指定推送的分支
强制推送 git push -f 强制将本地库推送到远程。如果远程有修改则覆盖
从远程库拉取数据 git fetch [origin] 从远程库拉取数据到本地库,不覆盖暂存区和工作区
拉取并合并 git pull [origin] [远程分支名]:[本地分支名] 取回远程分支,并自动尝试合并到本地master分支。
补丁操作 生成patch补丁 git diff commit1 commit2 > xx.patch 根据两个commit的差异生成补丁
应用补丁 git apply xx.patch 补丁合并到当前分支

分支、标签、归档及特殊操作

操作 命令 描述
分支操作 创建分支 git branch <branchname> 创建新的分支branchname。
切换分支 git switch dev 切换到dev分支(git checkout dev也可以)
显示分支 git branch 显示当前分支
-a列出所有分支(含远程跟踪分支)
合并分支 git merge  合并指定分支到当前分支
--no-ff -m "some thing":不使用fastforward合并,合并后保留分支的commit记录。合并节点形成一个新commit。
rebase变基 git rebase master 把当前分支变基合并到master分支。相比merge变基合并后看不出分支。当前分支直接接在master分支之后合并。
git rebase --continue:如果出现冲突,该命令可以继续。
git rebase --abort:该命令取消rebase。
删除分支 git branch -d  删除分支,只能删除已经合并到别的分支后的分支。
-d改为-D可以强制删除指定分支。
重命名分支 git branch -m 重命名分支
远程分支操作 git branch -r  远程库的分支的操作(创建、删除、移动)的,只需要加上`-r`参数就可以了。
标签 创建标签 git tag v1.0 创建一个名称为v1.0的标签
查看标签 git tag 查看所有标签
查看标签详细信息 git tag show v1.0 查看指定标签的详细信息
删除标签 git tag -d v1.0 删除指定标签
推送到远程库 git push origin v1.0 把指定标签推送到远程库。用--tags可以推送所有未推送的标签
删除远程库标签 git push origin :refs/tags/v1.0 在删除本地标签后,用该命令
归档 归档当前库 git archive head -o xxx.zip 把head版本归档到指定zip文件
git archive master -o xxx.zip
git archive master | gzip>xx.tgz
同上
特殊操作(非常危险的操作,不建议使用)  git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch file' --prune-empty --tag-name-filter cat -- --all 删除文件(包括commit记录中)
git filter-branch --force --index-filter 'git rm --cached -r --ignore-unmatch folder' --prune-empty --tag-name-filter cat -- --all 删除文件夹(包括commit记录中)

环境设置操作

操作 命令 描述
查看配置 查看配置 git config --list 列出git能够找到的所有配置
查看配置位置 git config --list --show-origin 列出所有配置以及配置位置
查看某项配置 git config name 查看指定选项配置
配置用户信息 用户名 git config --global user.name "name" 为整个计算机设置用户名。取消--global为当前项目设置用户名
邮件 git config --global user.email "[email protected]" 设置email地址
换行符转换 不转换 git config --global core.autocrlf false 文件中的换行符无论是Cr还是Lf都不转换。
库转换为LF检出还原 git config --global core.autocrlf true 提交时转换为LF,检出时转换为系统默认符号
提交是转换为LF git config --global core.autocrlf input 提交时转换为LF,检出时不转换(建议使用)

猜你喜欢

转载自blog.csdn.net/hustlei/article/details/122737736