当前位置:   article > 正文

Git相关命令介绍

Git相关命令介绍

Git是一个功能强大的版本控制系统,它提供了一系列的命令来帮助开发者进行日常的版本控制操作。以下是一些常用的Git命令及其简要介绍:

初始化和配置

  • git init: 初始化一个新的Git仓库。
  • git config: 配置Git的设置,如用户名、邮箱等。

文件更改

  • git add <file>: 将指定文件添加到暂存区。
  • git rm <file>: 从暂存区和工作目录中删除文件。
  • git mv <old> <new>: 移动或重命名文件。

查看状态和日志

  • git status: 查看当前工作目录的状态。
  • git log: 查看提交历史。
  • git reflog: 查看所有HEAD的变动记录,用于恢复丢失的提交。
  • git diff: 查看工作目录和暂存区或HEAD之间的差异。

提交更改

  • git commit: 提交暂存区的更改到仓库。
  • git commit -m "message": 提交并添加提交信息。
  • git commit --amend: 修改最后一次提交。

分支和标签

  • git branch: 列出所有本地分支。
  • git branch -a: 列出所有分支(本地和远程)。
  • git checkout <branch>: 切换到指定分支。
  • git switch <branch>: (Git 2.23+)切换到指定分支。
  • git branch -d <branch>: 删除本地分支。
  • git tag: 列出所有标签。
  • git tag <name>: 创建一个新的标签。

远程仓库

  • git clone <url>: 克隆远程仓库到本地。
  • git remote: 显示远程仓库的简写名和URL。
  • git remote add <name> <url>: 添加远程仓库。
  • git fetch: 从远程仓库获取所有分支的最新状态。
  • git pull: 拉取远程分支的更改并合并到当前分支。
  • git push: 推送本地分支的更改到远程仓库。
  • git push -u origin <branch>: 推送本地分支到远程仓库,并设置上游分支。

合并和衍合

  • git merge <branch>: 将指定分支的更改合并到当前分支。
  • git rebase: 将当前分支的更改移植到另一分支上。

撤销和重置

  • git reset: 重置当前HEAD到指定的状态。
  • git reset --hard: 重置HEAD并丢弃所有更改。
  • git reset --soft: 重置HEAD,但不更改索引和工作目录。
  • git reset --mixed: (默认)重置HEAD和索引,但不更改工作目录。
  • git revert <commit>: 创建一个新的提交,撤销指定提交的更改。

冲突解决

  • git merge --abort: 中止当前的合并操作。
  • git rebase --abort: 中止当前的衍合操作。

子模块

  • git submodule add <url>: 添加子模块到仓库。
  • git submodule update: 更新所有子模块。

其他

  • git clean: 清除工作目录中未跟踪的文件。
  • git stash: 临时存储未提交的更改。
  • git stash pop: 恢复之前存储的更改。
  • git bisect: 二分查找引入错误的提交。

高级查看状态

  • git show: 显示提交、标签或分支的信息。
  • git diff --stagedgit diff --cached: 比较暂存区和上一次提交之间的差异。
  • git diff <branchA> <branchB>: 比较两个分支之间的差异。

忽略文件

  • .gitignore: 一个配置文件,用于指定Git应忽略的文件或目录模式。

交互式暂存

  • git add -igit interactive-add: 进入一个交互式暂存界面,可以逐步添加更改。

补丁管理

  • git apply <patch>: 应用一个补丁文件。
  • git am: 将邮件格式的补丁应用到仓库中。

子命令

  • git submodule foreach <command>: 对所有子模块执行指定的命令。

远程分支操作

  • git push <remote> --delete <branch>: 删除远程分支。
  • git push <remote> --tags: 推送所有标签到远程仓库。

远程仓库管理

  • git remote rename <old> <new>: 更改远程仓库的名称。
  • git remote remove <remote>git remote rm <remote>: 删除远程仓库的引用。

远程跟踪分支

  • git branch -r: 列出所有远程跟踪分支。
  • git branch -vv: 显示本地分支和远程跟踪分支的最新提交。

工作流支持

  • git flow: 一个使用Git的分支工作流工具,帮助管理复杂的开发过程。

配置和帮助

  • git config --list: 列出所有配置项。
  • git help <command>: 显示指定命令的帮助信息。

性能优化

  • git gc: 清理仓库,优化性能。
  • git prune: 修剪未使用的对象,减少仓库大小。

钩子(Hooks)

  • pre-commit: 提交前运行的脚本。
  • post-commit: 提交后运行的脚本。
  • pre-push: 推送前运行的脚本。
  • post-receive: 接收推送后运行的脚本。

其他实用命令

  • git archive <branch> | tar -x: 从Git仓库中导出特定分支的文件。
  • git shortlog: 显示提交历史的概要。
  • git whatchanged: 显示仓库的变更日志。

子模块(Submodules)高级操作

  • git submodule update --remote: 更新子模块到其远程仓库的最新状态。
  • git submodule foreach --recursive: 在所有子模块及其子子模块中递归执行命令。

工作树(Worktrees)

  • git worktree add: 添加一个新的工作树,允许在不同分支间轻松切换。
  • git worktree prune: 清理未使用的工作树。

替代Hashes(替代哈希)

  • git alternate-refs: 管理替代引用,用于创建可以合并回来的实验性分支。

引用(References)

  • git show-ref: 显示所有引用和它们的目标。
  • git update-ref: 更新引用到特定的commit。

打包

  • git bundle: 创建一个包含多个分支和标签的包,方便传输。

网络操作

  • git ls-remote <remote>: 列出远程仓库的引用和它们的哈希值。

清理

  • git clean -d: 清除工作目录中的未跟踪目录。
  • git gc --prune=<date>: 清理老旧的无需打包的对象。

子命令的子命令

  • git remote show <remote>: 显示远程仓库的详细信息。
  • git branch -r --sort=-creatordate: 按创建日期排序显示远程分支。

诊断

  • git fsck: 检查数据库的完整性。
  • git count-objects: 显示对象数据库的统计信息。

邮件

  • git am -3: 应用补丁,对每个电子邮件消息创建一个提交。
  • git format-patch: 生成一系列补丁文件。

合并策略

  • git merge -s ours: 合并时采用当前分支作为主分支。
  • git merge -s recursive: 使用递归策略合并分支。

撤销操作

  • git reset --soft: 回退到指定的状态,但不撤销工作目录中的更改。
  • git reset --mixed: (默认)回退到指定的状态,并重置暂存区,但不改变工作目录。

别名

  • git config --global alias.<name> <command>: 创建自定义别名以简化命令。

钩子(Hooks)的使用

  • 你可以在.git/hooks/目录下创建自定义脚本,这些脚本会在特定的Git事件发生时自动运行。

配置文件

  • .gitconfig: 全局配置文件,位于用户的主目录下。
  • .gitmodules: 管理子模块的配置文件。

交互式变基

  • git rebase -i <commit>: 交互式变基,允许你修改、删除、压缩或重新排序commit。

比较和合并

  • git cherry-pick <commit>: 应用一个特定的commit到当前分支。
  • git diff-tree <commit1> <commit2>: 显示两个commit之间的差异。

远程分支的跟踪

  • git branch -u <remote>/<branch>: 设置上游分支,使得git pullgit push可以直接使用。

撤销暂存区更改

  • git reset HEAD <file>: 撤销暂存区的更改,但不改变工作目录。
  • git restore <file>: 撤销暂存区的更改,恢复工作目录的更改。

这些命令和概念覆盖了从日常使用到高级维护的各个方面,可以帮助你更深入地理解和使用Git。随着你对Git的不断学习和实践,你将能够更加熟练地运用这些工具来优化你的工作流程。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/769786
推荐阅读
相关标签
  

闽ICP备14008679号