仅列出常用的命令,详细说明见https://blog.youkuaiyun.com/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@example.com" | 设置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,检出时不转换(建议使用) | |
本文列举了Git中常用的本地及远程操作命令,包括版本库管理、文件操作、分支标签管理等,适合初学者快速上手及专业人士查阅。
1万+

被折叠的 条评论
为什么被折叠?



