Git 进阶使用指南

Git 进阶使用指南

欢迎体验这份Git进阶使用指南!本文档将带你深入探索Git的高级功能和技巧,帮助你更高效地管理代码和协作开发。


1. 分支管理进阶

1.1 分支重命名

快速重命名本地分支:

bash 复制代码
git branch -m <旧分支名> <新分支名>

1.2 查看远程分支

列出所有远程分支:

bash 复制代码
git branch -r

1.3 跟踪远程分支

将本地分支与远程分支关联:

bash 复制代码
git branch --set-upstream-to=origin/<远程分支名> <本地分支名>

1.4 处理合并冲突

合并分支时若发生冲突:

  1. Git会标记冲突文件。
  2. 手动编辑文件解决冲突。
  3. 执行以下命令完成合并:
bash 复制代码
git add <冲突文件>
git commit -m "解决合并冲突"

2. 变基(Rebase)

变基可以让提交历史更线性整洁,是合并的替代方案。

2.1 基本变基

将当前分支的提交应用到目标分支:

bash 复制代码
git rebase <目标分支>

2.2 交互式变基

编辑、合并或删除历史提交:

bash 复制代码
git rebase -i <提交ID>

3. 储藏(Stash)

临时保存工作目录的更改,方便切换任务。

3.1 保存储藏

bash 复制代码
git stash save "储藏描述"

3.2 应用储藏

恢复最近的储藏:

bash 复制代码
git stash apply

3.3 查看储藏列表

bash 复制代码
git stash list

3.4 删除储藏

bash 复制代码
git stash drop <储藏ID>

4. 子模块(Submodule)

在项目中嵌入其他Git仓库。

4.1 添加子模块

bash 复制代码
git submodule add <子模块URL>

4.2 更新子模块

初始化并更新所有子模块:

bash 复制代码
git submodule update --init --recursive

5. 钩子(Hooks)

在Git事件触发时运行自定义脚本。

5.1 客户端钩子

pre-commit(提交前检查)、post-merge(合并后执行)。

5.2 服务器端钩子

pre-receive(接收推送前验证)。

钩子文件位于.git/hooks/目录下,可自定义编辑。


6. 高级配置

6.1 设置别名

简化常用命令:

bash 复制代码
git config --global alias.co checkout

6.2 忽略文件

.gitignore中添加不需要跟踪的文件或目录。

6.3 凭证管理

保存登录凭证,避免重复输入:

bash 复制代码
git config --global credential.helper store

7. 故障排除

7.1 找回丢失提交

通过引用日志找回:

bash 复制代码
git reflog

然后使用git reset <提交ID>git cherry-pick <提交ID>恢复。

7.2 强制推送

覆盖远程分支(谨慎使用):

bash 复制代码
git push -f origin <分支名>

8. 推荐学习资源


这份指南涵盖了Git的多种高级用法,希望能助力你的开发之旅!有任何疑问,欢迎交流。

相关推荐
NexTunnel2 小时前
公司老项目还在 SVN,远程维护怎么做更稳?
git·svn·gitlab·远程工作·nextunnel
满天星830357713 小时前
【Git】原理及使用(七) (多人协作 [下])
git
郡杰20 小时前
Git基础与开发平台搭建
git·后端
钟智强1 天前
我警告了 329 天
git·php·wordpress·webshell
乐观的冷风1 天前
我们需要将文件添加到暂存区才能提交,而移除文件后是无法添加到暂存区的,那么怎么移除一个文件让GIT不再将其纳入版本控制呢?上图中GIT已经给出了说明:
git
tjl521314_211 天前
Git SSH Host Key Verification Failed 问题排查与解决
运维·git·ssh
嘶哈哈哈1 天前
[特殊字符] Git 协作指南
git
say_fall1 天前
【Git 精品详解】企业规范:企业级开发模型、Git Flow、发版流程规范、Code Owner 制度、事故应急回滚
大数据·linux·服务器·git·学习·elasticsearch
江畔柳前堤2 天前
第13章:docker生产环境部署实战
运维·git·docker·容器·代码复审
GuHenryCheng2 天前
【ESP32】ESP-IDF开发环境搭建(cursor)
git·stm32·单片机·学习