你不一定知道的几个很有用的 Git 命令
这里给大家分享一些很有用的 Git 命令,其中很多用法你可能都不知道,无论你是工作在团队环境中或在您的个人项目中,这些命令将对你帮助很大,让你可以更加高效的进行项目开发,更轻松愉快的工作和生活。
1. 导出最后一次提交修改过的文件
我一直在使用这个命令定期进行发送给其他人进行审查/整合。这条命令将把近期提交的修改过的文件导出到一个zip文件。
1 | git archive -o ../updated.zip HEAD $(git diff --name-only HEAD^) |
2. 导出两次提交之间修改过的文件
同样,如果你需要导出两次提交之间修改过的文件,你可以用这一个。
1 | git archive -o ../latest.zip NEW_COMMIT_ID_HERE $(git diff --name-only OLD_COMMIT_ID_HERE NEW_COMMIT_ID_HERE) |
3. 克隆一个特定的远程分支
如果你想从远程仓库克隆特定的一个分支,这条命令对你很有用:
1 2 3 | git init git remote add -t BRANCH_NAME_HERE -f origin REMOTE_REPO_URL_PATH_HERE git checkout BRANCH_NAME_HERE |
4. 从无关的本地仓库应用补丁
如果您需要申请从提交的一些其他不相关的创库到本地存储库,这里是一个快捷的方式:
1 | git --git-dir=PATH_TO_OTHER_REPOSITORY_HERE/.git format-patch -k -1 --stdout COMMIT_HASH_ID_HERE| git am -3 -k |
5. 检查您的分支变化是是否其他分支的一部分
cherry 命令可以让你检查你的分支的变化是否存在于其他一些分支之中。它会显示在当前分支相对于给定的分支的修改,用+或-标志提示提交合并与否。+表示不存在,而-表示存在于给定的分支。
1 2 3 | git cherry -v OTHER_BRANCH_NAME_HERE #For example: to check with master branch git cherry -v master |
6. 启动一个无历史的新分支
有时候,你需要启动一个新的分支,同时想摒弃历史信息,例如,你想将代码放在公共领域(开源)又不想共享历史信息。
1 | git checkout --orphan NEW_BRANCH_NAME_HERE |
7. 在不切换分支的情况下从其它分支检出文件
下面的命令是从其他分支获取文件,而不用切换分支。
1 | git checkout BRANCH_NAME_HERE -- PATH_TO_FILE_IN_BRANCH_HERE |
8. 忽略跟踪文件的修改
如果你工作在一个团队,他们都是工作在同一个分支,你需要频繁的读取/合并文件。但是有时复位了你环境的特定配置,你必须在合并后每一次都再改一下。使用这个命令,你可以忽略更改特定的文件:
1 | git update-index --assume-unchanged PATH_TO_FILE_HERE |
9. 检查提交的修改是否发布版本的一部分
这个 name-rev 命令可以告诉你提交相对于最新发布版本的位置。利用这一点,你可以检查你的变化是否发布版本的一部分。
1 | git name-rev --name-only COMMIT_HASH_HERE |
10. 使用 pull rebase 操作替代 merge
如果你工作的团队正工作在同一个分支,那么你所要做的获取/合并或经常拉取。分支合并的 git 记录与合并提交时提示功能分支被并入主干。但在多个团队成员工作的同一分支的情况下,经常合并导致在日志中多个合并的消息引起混乱。所以你可以使用 pull rebase,以保持历史信息清除了无用合并的消息。
1 | git config branch.BRANCH_NAME_HERE.rebase true |
此外,您可以配置一个特定的分支总是衍合:
1 | git pull --rebase |
英文链接:10 Useful Advanced Git Commands
本文来自【梦想天空(http://www.cnblogs.com/lhb25/)】
作者:山边小溪
主站:yyyweb.com 记住啦:)
欢迎任何形式的转载,但请务必注明出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
2013-03-04 Respond.js – 让不懂爱的 IE6-8 支持 CSS3 Media Query
2013-03-04 那些帮助你成为优秀前端工程师的讲座——《性能篇》
2013-03-04 Calm.com – 帮助你放松心情的神奇网站
2012-03-04 最新十款免费英文字体资源下载
2011-03-04 非常好的JavaScript学习资源推荐
2010-03-04 Web 设计中的 5 个最具争议性的话题