【Git 教程】Git 进阶使用方法

这篇具有很好参考价值的文章主要介绍了【Git 教程】Git 进阶使用方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Stash 使用

git stash 命令用于临时保存和恢复未完成的工作。

  • 保存当前工作状态:

    git stash save "stash message"
    

    最新的建议写法:

    git stash puth -m "stash message"
    

    这会创建一个新的 stash,你可以提供一个消息来进行描述。

  • 查看所有保存的 stash:

    git stash list
    
  • 恢复最近的 stash:

    git stash pop
    

    这会将最近的 stash 应用到当前分支,并从 stash 列表中删除它。

  • 恢复指定的 stash:

    git stash apply stash@{n}
    

    其中 n 是你想要应用的 stash 的索引。

该功能我常用于分支间临时更改的切换,例如我在 A 分支更改了很多内容,后面发现这些更改本应在 B 分支进行处理的,此时这个功能就非常有用。

二、Cherry-pick 使用

git cherry-pick 命令用于选择一个或多个提交并应用到当前分支。

  • 应用单个提交:

    git cherry-pick <commit-hash>
    

    这会将指定的提交应用到当前分支,当然它们的哈希值会不一样

  • 应用多个提交:

    git cherry-pick <commit-hash1> <commit-hash2> <commit-hash3>
    

    你可以一次应用多个提交。

  • 解决 cherry-pick 冲突:

    如果在 cherry-pick 过程中发生冲突,你需要手动解决它们,然后执行以下命令完成 cherry-pick

    git add <冲突文件>
    git cherry-pick --continue
    

三、Reflog 使用

git reflog 命令显示当前分支的最近操作日志。

  • 查看当前分支的 reflog:

    git reflog
    

    这将显示当前分支的提交历史,包括已经被删除的提交。

  • 恢复已删除的提交:

    如果你想恢复一个已经被删除的提交,你可以使用 git cherry-pick 或者 git reset 命令。

四、修改历史提交

有时候你可能需要修改历史提交。

  • 修改最近一次提交:

    git commit --amend
    

    这会打开编辑器让你修改提交信息,并且可以添加或修改此次提交的文件。

  • 修改历史中的多个提交:

    git rebase -i <commit-hash>^
    

    在交互式 rebase 界面中,你可以选择要修改的提交,并将其更改为 edit 状态。然后使用 git commit --amend 修改提交,接着使用 git rebase --continue 继续执行 rebase。

    看不懂 ^ 符号的可以去看 【Git 教程】Git 基本使用方法。

五、使用别名

为了提高命令行操作的效率,可以为常用的 Git 命令设置别名(在 【Git 教程】Git 基本使用方法 中我们也已经展示了一下,不过那是通过直接更改配置文件来达到目的的)。

  • 设置别名:

    git config --global alias.co checkout
    git config --global alias.br branch
    git config --global alias.ci commit
    

    .gitconfig 文件中配置这些别名,以便它们在所有仓库中生效。

六、Submodule 使用

git submodule 命令用于管理子模块。

此命令可以达到 svn目录权限效果。

  • 添加子模块:

    git submodule add <repository> <path>
    

    这会在指定的路径下添加子模块。

  • 更新子模块:

    git submodule update --init --recursive
    

    这会初始化、递归地更新所有子模块。

七、钩子(Hooks)使用

Git 钩子可以在 Git 操作的特定阶段运行自定义脚本。所有钩子均被放置在 Git 目录下的一个特定子目录,即我们通常在大多数项目中看到的 .git/hooks 目录。在通过 git init 命令创建新的版本库的时候,Git 会自动在这个位置部署一些示范脚本。这些脚本不仅具备可执行性,还会展示当它们激活时传递的参数。虽然这些示例脚本主要是用 shell 编写的,部分还包含了 Perl 代码,但实际上,只要脚本命名得当且具备可执行属性,可以使用任何编程语言来编写,无论是 RubyPython 或者其他你所擅长的语言皆可。

  • 安装钩子:

    将自定义脚本放在 .git/hooks 目录下的相应位置。例如,pre-commit 钩子在提交之前运行。

  • 示例 pre-commit 钩子:

    #!/bin/bash
    # 检查代码风格
    if ! git diff-index --cached --name-only HEAD | grep -E '\.jsx\?$' | xargs eslint; then
        exit 1
    fi
    

    在这个例子中,钩子会在提交前运行 ESLint 检查。

八、浅克隆(Shallow Clone)

git clone 命令的 --depth 选项用于创建浅克隆。

  • 创建浅克隆:

    git clone --depth=1 <repository>
    

    这会克隆仓库的最新一次提交,而不包括完整的历史记录。

九、Bisect 使用

git bisect 命令用于在 Git 历史中查找引入 bug 的提交。(这个功能我自己也少用,没法解说的太详细,大家凑合看看吧。。。)

  • 启动 bisect:

    git bisect start
    
  • 标记一个已知包含 bug 的提交:

    git bisect bad <commit-hash>
    
  • 标记一个已知不包含 bug 的提交:

    git bisect good <commit-hash>
    
  • 使用 gitk 查看当前 bisect 过程中剩余的提交信息:

    git bisect visualize
    

十、Archive 使用

git archive 命令用于将 Git 仓库打包成一个归档文件。

  • 创建归档文件:

    git archive --format zip --output archive.zip HEAD
    

    这将创建一个名为 archive.zip 的归档文件,其中包含当前提交(HEAD)的代码。

    据我使用经验所知,打包成的归档文件并不会包含 .gitignore 中忽略的文件。

十一、Revert 使用

git revert 命令用于撤销 Git 仓库中的提交。

  • 撤销单个提交:

    git revert <commit-hash> -m 1
    

    这将撤销指定提交(<commit-hash>)的一个父提交。

  • 撤销多个提交:

    git revert <commit-hash1>..<commit-hash2> -m 1
    

    这将撤销指定提交范围(<commit-hash1><commit-hash2>)的一个父提交。

  • 撤销提交并保留更改:

    git revert -n <commit-hash>
    

    这将撤销指定提交(<commit-hash>),但不会提交更改。相反,它会将更改留在工作目录中,以便你进行下一步操作。

十二、Clean 使用

git clean 命令用于删除 Git 仓库中未跟踪的文件。

  • 强制删除未跟踪的文件:

    git clean -f
    

    这将强制删除所有未跟踪的文件。

  • 强制删除未跟踪的目录:

    git clean -fd
    

这将强制删除所有未跟踪的文件和目录。

十三、Grep 使用

git grep 命令用于在 Git 仓库中搜索字符串。

  • 搜索当前提交中的字符串:

    git grep "string"
    

    这将搜索当前提交中包含指定字符串(string)的文件。

  • 搜索历史提交中的字符串:

    git grep "string" <commit-hash>
    

    这将搜索指定提交(<commit-hash>)中包含指定字符串(string)的文件。

十四、Rm 使用

git rm 命令用于从 Git 仓库中删除文件或目录。

  • 删除文件:

    git rm <file>
    

    这将删除指定文件(<file>)并从 Git 仓库中移除。

  • 删除目录:

    git rm -r <directory>
    

    这将删除指定目录(<directory>)及其所有子目录和文件,并从 Git 仓库中移除。

  • 强制删除文件或目录:

    git rm -f <file>
    

    这将强制删除指定文件(<file>)或目录(<directory>),而不进行任何确认。

  • 从 Git 仓库中删除文件但不删除文件内容

    如果你只想从 Git 仓库中删除文件,但不删除文件内容,可以使用 git rm --cached 选项。

    git rm --cached <file>
    

    这将从 Git 仓库中删除指定文件(<file>),但不会删除文件内容。

  • 撤销 Git rm 操作

    如果你在执行 git rm 后发现误删了文件,可以使用 git checkout 命令撤销操作。

    git checkout -- <file>
    

    这将撤销对指定文件(<file>)的删除操作。

十五、.gitignore 相关

  • 检查文件是否被 Git 忽略:

    git check-ignore <file>
    

    如果想看所有被 .gitignore 匹配到的忽略的文件/目录,可以这样写:文章来源地址https://www.toymoban.com/news/detail-831366.html

    git check-ignore *
    

到了这里,关于【Git 教程】Git 进阶使用方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git的使用方法

    简单来说,Git就像一个日志一样,可以帮你记录你对 文本文件 的修改,但他的功能又强于日志,不仅可以记录,还可以帮你存储那些你对文本文件的修改,当你想要找回之前未修改的文件时,它可以帮你办到。 该文章借鉴了廖雪峰的官方网站 创建一个版本库 在learngit目录下

    2024年02月10日
    浏览(40)
  • Git分支使用方法

    目录 前言 一、查看可用分支 二、创建新分支 三、切换到新分支 四、在新分支上进行工作 五、提交更改 六、切换回主分支 七、删除分支 八、合并分支 九、合并冲突 1、冲突是什么? 2、解决冲突的步骤: 分支是指在同一个代码仓库中的不同版本线。它们可以被用来同时开

    2024年02月10日
    浏览(30)
  • Git撤销使用方法

    目录 介绍 详细教程 1、撤销对文件的修改 2、撤销对所有文件的修改 3、撤销对已经暂存(staged)的文件的修改 4、撤销当前分支的提交 5、撤销所有本地的修改,回到远程仓库的状态 6、使用 git revert 撤销提交并创建新的提交 7、使用 git reset 撤销提交并删除提交历史 撤销是指

    2024年02月10日
    浏览(28)
  • git使用方法小结

    先建立本地分支和远程分支的关联 git branch --set-upstream-to=origin/remote_branch your_branch 然后git push 否则就需要git push origin your_branch git branch -vv git branch -av git branch -r 直接强推 git push -f origin/master -f是强制推送的意思 1.在顶层目录修改.gitignore 2.删除本地chche缓存 git rm -r --cached . 3.重

    2024年02月09日
    浏览(31)
  • git cz 使用方法

    目录 git cz 的介绍 全局安装 git cz 全局安装changelog,生成changelog的工具 项目下进行配置(配置出现问题可以尝试使用管理员身份运行或者在结尾加上 --force 字段)  在第四点前的操作,每台电脑只用操作一次即可,第四点,需要每个项目都操作安装一遍 git-cz 一款git commit 统一

    2024年02月15日
    浏览(23)
  • Git远程仓库使用方法

    目录 介绍 详细教程 1、创建远程仓库 2、在本地初始化仓库 3、关联远程仓库 4、提交代码 5、拉取到本地仓库 6、提交到Git仓库 5、将本地代码推送到远程仓库 远程仓库在协同开发中起着关键的作用,它提供了一个中央存储库,使多个开发者能够协同工作、共享代码、协同工

    2024年02月11日
    浏览(26)
  • git使用X篇_1_SVN和GIT的版本控制区别及git等的使用方法

    GIT是分布式版本控制系统,可以在本地记录代码的修改过程而不一定上传至SVN服务端: 详细使用差异见博客: 版本控制:SVN和GIT的一些使用感受 版本控制:SVN和GIT的一些使用感受(续) Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本

    2024年02月08日
    浏览(43)
  • git 的使用方法(上 - 指令)

    在工作中我们的项目一般都是多人合作完成的,这样就需要用到 git 了,跟随本文来一起学习把! Git 是目前世界上最先进的 分布式 版本控制系统。 Workspace :工作区 Index / Stage :暂存区 Repository :仓库区(或本地仓库) Remote :远程仓库 SVN 是 集中式 版本控制系统,版本库

    2023年04月08日
    浏览(26)
  • git stash的使用方法

    当我们在开发一个新功能的时候,或者开发到一半,然后就收到了线上master 出现了bug,当分支开发已经进行了或者进行到一半了,这时怎么办呢? 这时解决方案有两种:一种是先先将当前开发种的代码提交到分支上去,虽然可以解决问题但是不妥。第二个分案切换一个新的

    2024年02月07日
    浏览(32)
  • Git安装与使用方法入门

    目录 Git简介 Git下载与安装 Git配置环境变量 Git使用方法入门 Git是一个帮助开发者追踪代码变化和团队协作的工具。它记录了代码修改的历史,并允许回到过去的版本。开发者可以创建分支来独立开发新功能,而不影响主代码。团队成员可以共享代码,并轻松合并修改。Git提

    2024年02月09日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包