git命令大全一文搞定

2024-10-14 17:52:23

一、创建于初始化

git init: 在当前目录初始化一个新的 Git 仓库。git clone [url]: 克隆远程仓库到本地。


二、基本操作

git add . : 将文件添加到暂存区。git commit -m “message”: 提交暂存区的文件到本地仓库。git status: 显示工作区和暂存区的状态。git diff: 显示文件修改的差异。


三、分支与合并

git branch: 列出本地分支,创建或删除分支。git checkout [branch]: 切换到指定分支。git merge [branch]: 合并指定分支到当前分支。git rebase [branch]: 将当前分支变基到指定分支。

四、远程操作

git remote -v: 显示远程仓库的详细信息。git fetch [remote]: 从远程仓库拉取最新变更。git pull [remote] [branch]: 拉取远程分支并合并到本地分支。git push [remote] [branch]: 将本地分支推送到远程仓库。

五、撤销与重置

git reset [file]: 从暂存区撤销文件的更改。git revert [commit]: 撤销指定提交的更改。git checkout – [file]: 恢复文件到最近一次提交的状态。

六、查看历史与日志

git log: 显示提交日志。git show [commit]: 显示某次提交的详细内容。

七、标签与版本

git tag: 列出标签。git tag [name]: 创建标签。git tag -d [name]: 删除标签。

八、其他命令

git stash: 暂存当前工作区的修改git cherry-pick [commit]: 选择并应用某个提交的更改git clean: 从工作区中移除未跟踪的文件git grep [pattern]: 在代码库中搜索指定模式git bisect: 用于二分查找引入 bug 的提交git archive: 创建文件归档git submodule: 管理子模块git reflog: 查看引用日志,用于恢复误删除的提交或分支git remote add: 添加一个新的远程仓库git remote rm: 移除一个远程仓库git config: 配置 Git 的各种选项和变量git log: 查看提交日志git show: 查看提交的详细内容git diff: 查看文件更改前后的差异git status: 查看工作区和暂存区的状态git add: 将文件添加到暂存区git commit: 将暂存区的文件提交到本地仓库git reset: 撤销提交或将文件从暂存区移除git rm: 从版本库中删除文件git mv: 移动或重命名文件git branch: 列出、创建或删除分支git checkout: 切换分支或恢复文件git merge: 合并指定分支到当前分支git rebase: 变基操作,将提交应用于另一分支git stash: 暂存当前的工作进度git fetch: 从远程仓库获取代码更新git pull: 拉取远程分支并合并到本地分支git push: 将本地分支推送到远程仓库git remote: 管理远程仓库git tag: 创建、列出或删除标签git bisect: 用二分法查找引入 bug 的提交git blame: 显示每行代码是谁、在什么时间写入的git cherry-pick: 选择并应用某个提交的更改到当前分支git bisect: 用于二分查找引入 bug 的提交git grep: 在代码库中搜索指定模式git archive: 创建文件归档git submodule: 管理子模块git reflog: 查看引用日志,用于恢复误删除的提交或分支git stash apply: 应用之前暂存的工作进度git stash pop: 恢复并删除之前暂存的工作进度git stash drop: 删除之前暂存的工作进度git remote show: 显示某个远程仓库的详细信息git remote rename: 重命名某个远程仓库git remote prune: 清理不再存在的远程分支git clean -n: 显示将要删除的未跟踪文件,但并不删除它们git clean -f: 强制删除工作区中的未跟踪文件git clean -df: 删除未跟踪文件和目录git ls-files: 列出当前版本库中的文件git rev-parse: 显示提交对象的标识符git rebase -i: 执行交互式 rebase 操作,可以合并、修改、删除提交等git bisect start: 启动一个二分查找工具,用于定位引入 bug 的提交git bisect bad: 标记当前提交包含 buggit bisect good [commit]: 标记指定提交为没有 buggit bisect reset: 结束二分查找并重置 HEAD 到原来的状态git shortlog: 根据作者将提交整理成摘要git show-branch: 显示各个分支的提交情况git svn: 与 SVN (Subversion) 仓库进行交互git format-patch: 生成补丁文件git apply: 应用补丁文件git am: 应用补丁并创建提交git fsck: 检查 Git 仓库的完整性git gc: 清理不必要的文件和优化存储git instaweb: 启动图形化界面查看仓库git pull --rebase: 拉取远程分支并执行 rebase 操作git push --force: 强制推送更改到远程仓库git blame -L: 限制 blame 命令只显示某些行的信息git checkout -b [branch]: 创建并切换到新的分支git remote add: 添加一个远程仓库git remote rm: 移除一个远程仓库git remote update: 更新远程仓库引用git remote set-url: 修改远程仓库的 URL 地址git remote set-head: 设置远程仓库的 HEADgit svn rebase: 从 SVN 仓库重新获取数据并应用到当前分支git svn dcommit: 将本地提交推送到 SVN 仓库git svn fetch: 从 SVN 仓库获取数据,但不应用到当前分支git svn clone: 从 SVN 仓库克隆项目git svn init: 初始化 Git 仓库以与 SVN 仓库进行交互git svn log: 查看 SVN 仓库的提交日志git svn set-tree: 设置 SVN 仓库的树git svn reset: 重置 SVN 仓库git svn show-ignore: 显示 SVN 仓库的忽略列表git svn info: 显示 SVN 仓库的信息git worktree: 管理多个工作树git bisect visualize: 可视化二分查找的执行过程git reflog expire: 清理引用日志中过期的记录git reflog delete: 删除引用日志中指定的记录git add -p: 交互式地将部分更改添加到暂存区git commit --amend: 修改最后一次提交git rebase --onto: 在不同的分支间移动提交git rebase --abort: 中止 rebase 操作并恢复到 rebase 开始前的状态git rebase --continue: 继续执行 rebase 操作git merge --squash: 将所有合并的提交压缩成一个提交git stash -u: 包括未跟踪文件和已跟踪文件一起暂存git push --all: 推送所有分支到远程仓库git push --tags: 推送所有标签到远程仓库git fetch --prune: 获取远程仓库的最新变更并清理无效的远程分支git diff --submodule: 显示子模块的 diff 信息git notes: 添加、查看或编辑对象的注释git grep --cached: 在暂存区域搜索git ls-tree: 列出树对象的信息git rebase -X: 使用指定的策略选项执行 rebase 操作git shortlog -sn: 根据提交者的提交数量生成摘要列表git show-ref: 显示引用的信息git bundle: 打包所有的分支和标签成一个文件git config [–global]: 配置 Git 选项git rev-parse: 解析并显示引用的值git revert [commit]: 撤销指定提交的更改git cherry-pick [commit]: 将指定提交应用到当前分支git reflog: 查看引用日志,记录 HEAD 的变更历史git bisect visualize: 可视化二分查找历史git bisect replay: 重演二分查找历史git worktree add: 添加一个新工作树git switch: 切换分支和恢复工作目录更改git restore: 恢复工作目录文件的内容git sparse-checkout init: 初始化稀疏检出以限制仓库大小git lfs: 管理大型文件存储git submodule add: 添加子模块git submodule update: 更新子模块到最新版本git submodule sync: 更新子模块的 URLgit submodule status: 显示子模块的状态git merge-base: 找到两个提交的共同祖先git merge-base --is-ancestor: 检查一个提交是否是另一个提交的祖先git bundle create: 创建一个包含指定分支和标签的新文件git bundle verify: 验证捆绑文件的完整性git bundle list-heads: 列出捆绑文件中的头信息git bundle unbundle: 从捆绑文件中提取提交历史记录git bundle prune: 删除不再需要的捆绑文件对象git worktree lock: 锁定工作树,以防止其他操作修改其中的文件git worktree unlock: 解锁先前锁定的工作树git worktree remove: 移除一个已经添加的工作树git worktree list: 列出当前仓库的所有工作树git worktree prune: 删除不再需要的工作树git clean: 清理工作目录中未跟踪的文件git blame: 显示每一行代码是谁最后修改的git show: 显示某个对象的详细信息git grep: 在当前源码中搜索指定模式git apply: 应用补丁到工作目录git format-patch: 生成邮件格式的补丁文件git send-email: 发送邮件包含补丁git gc: 清理不必要的文件和优化本地仓库


九、文件标识

A: 增加的文件.C: 文件的一个新拷贝.D: 删除的一个文件.M: 文件的内容或者mode被修改了.R: 文件名被修改了。T: 文件的类型被修改了。U: 文件没有被合并X: 未知状态

十、颜色标识

红色,未加入版本控制;绿色,已经加入版本控制暂未提交;蓝色,加入版本控制,已提交,有改动;白色,加入版本控制,已提交,无改动;灰色:版本控制已忽略文件。