美文网首页
git 学习笔记

git 学习笔记

作者: 不会写代码的机器人 | 来源:发表于2024-09-09 16:47 被阅读0次

1.什么是git

笼统地讲,git是一个版本控制系统,用户跟踪记录文件的变化,协作开发代码。

2.基本认识

仓库:用来存储项目文件代码和历史的记录。
提交:新增、修改 目录资源状态到仓库。
分支:一个仓库可以有多个分支,用来多人协作,开发新功能,修改bug,同时进行。独立于主线。
合并:将不同的分支修改合并在一起。

3.git最常用的基本命令

git init:初始化一个新的git仓库
git clone [url]:克隆新的git仓库
git add [file]:将文件的当前状态添加到暂存区。
git commit -m "message":将暂存区的改动提交到仓库。 (一定要先pull,获取远程仓库最新代码)
git push:将本地提交推送到远程仓库。
git pull:从远程仓库拉取最新修改到本地。
git branch test:创建test分支
git checkout test:切换到test分支
git checkout -b test:创建test分支并且切换到test分支

举例:常用的分支合并【目标:将feature分支合并到test分支】

1.merge方式

①切换到test分支 git checkout test
②在test分支执行 git merge feature (如果有冲突,需要手动解决冲突)
③推送代码到远程仓库 git push
【优点:1.简单直接。2.合并保留了每个分支的历史记录,可以清晰地追踪每个分支的变化。】
【缺点:产生额外的合并提交,合并可能会导致复杂的分支结构和困难的代码整合问题】

2.主分支使用rebase方式【一般不介意在主分支使用rebase】

①切换到test分支 git checkout test
②开始rebase git rebase feature
③如果有冲突需要手动解决冲突,解决后将修改的文件标记为已解决 git add <resolved_file>
④继续rebase git rebase --continue
⑤可能需要强推到远程仓库 git push -f
【优点:整洁的提交历史,直接是一条线】
【缺点:可能会改变提交历史,共享的分支上进行rebase,可能会对其他开发者造成困扰】

3.特性分支rebase+主分支使用merge

①切换到test分支 git checkout test
②开始rebase git rebase test
③可能会有冲突,解决后执行 git add <resolved_file>
④继续rebase git rebase --continue
⑤强推送代码到feature git push -f
⑥切换到test分支 git checkout test
⑦执行merge合并到test git merge feature
⑧推送代码到远程仓库 git push
【优点:整洁的提交历史,直接是一条线。不会改变主分支提交历史线】
【缺点:不会保留特性分支的提交历史记录,】
---注意:如果test分支有其他功能的代码,该代码整合到feature上,合并到master分支时也会将test分支其他功能代码合并到master分支--------

4.主分支使用cherry-pick

①切换到test分支 git checkout test
②test分支执行cherry-pick git cherry-pick <commit-hash1> <commit-hash2>【commit-hash* 为特性分支提交的commit ID】
③test分支执行 git push
-----注意:
1.如果<commit-hash*> 有连续的多个commit,test分支可使用:
 ~ 不包含start-commit-hash git cherry-pick <start-commit-hash>..<end-commit-hash>
 ~ 包含start-commit-hash git cherry-pick <start-commit-hash>^..<end-commit-hash>
2.如果特性分支有很多个commit,可以执行rebase合并多条commit,修改为1条commit。test分支cherry-pick合并后的commit

命令行使用rebase合并多条commit

①所在分支 执行 git rebase -i HEAD~n, n是你想要合并的 commit 数量。这会打开一个交互式 rebase 窗口。

image.png
②在交互式窗口中,【需要按 i 键,打开编辑模式才能修改】将要合并的commit 前面的pick单词改为 "squash" 或 "s"。【最顶端的commit保留pick单词,下面的几个commit 改为s】
image.png
③编辑后按ESC退出编辑,英文状态输入:wq,按回车。关闭编辑器。此时会重新弹出第二个编辑器。
image.png
④【需要按i键,打开编辑模式】修改合并后新的commit信息,按Esc键退出编辑,输入:wq,按下“回车”,退出编辑器。
image.png
⑤执行git push -f 强推

相关文章

  • 学习笔记| git深入浅出 Part1_快速操作指南

    Git专题 学习笔记| git深入浅出 Part1_快速操作指南 学习笔记| git深入浅出 Part2_Git...

  • git 入门

    git 入门学习笔记----3个入门命令:git init、git add、git commit -v 学习场景(...

  • git记录

    Git Magic图解gitgit 学习笔记git游戏(学习)1、消除文档路径中文乱码git config --g...

  • Git学习笔记--常用命令整理

    超实用Git学习笔记 Git全局配置git config --global user.name "用户名"git ...

  • Git常用命令与学习总结

    安装Git Git的下载地址:Git官网下载地址 学习网址 git 学习笔记- Book 在线练习地址 基础常用指...

  • git学习笔记(二)—— git的简单操作

    这是本系列学习笔记的第二篇git 学习笔记(一)—— 初识 git 前言 本篇文章将简要的介绍 Git 的一般操作...

  • 关于crlf

    Git学习笔记:Git设置CRLF(行尾换行符) git config --global core.autocrl...

  • GIT

    Git学习笔记 Git 与 Github对接: cd到当前文档 git init初始化git git add -A...

  • Git学习笔记

    git学习笔记 声明 本文是本人学习Git过程中所做的笔记,以便日后查阅,文中多有错漏之处,不建议用作学习材料,文...

  • Git学习笔记

    git 学习笔记 注册个人信息 git config --global user.name(你的用户名) git ...

网友评论

      本文标题:git 学习笔记

      本文链接:https://www.haomeiwen.com/subject/gykyljtx.html