网站首页 > 技术文章 正文
什么是Git
对于开发者来说,git这个工具应该算是刻在DNA里了,简要说,Git就是用于多人开发的代码仓库管理工具。
Git可以使你的工程代码存在很多分支,类似于master branch,new feature branch等等。大家可以在各个分支代码灵活切换,当你有一个好点子,你可以checkout一个新分支,并将你的点子付诸实现,然后在该功能合并到你的主线时删除这个分支;或者多个开发者开发一个系统的不同子模块,大家基于自己的角色的曲线,每人新建一个分支,大家互不干扰,总是只包含自己子模块的东西,通过代码评审和测试后,可以合并到主线分支,可见,Git让多人协作开发这个过程变得非常简单,并且它改变了大多数开发人员学习它时的工作方式。
大家既可以用命令行模式(个人推荐),也可以用图形化的GUI,下载路径:Git - Downloads (git-scm.com)
常用的git命令
1. 克隆他人的代码
打开github或gitee,这里面有很多优秀的值得阅读的工程源码,比如plunder_the_xuanyuan_sword:
我们要克隆他的代码首先进行fork,就是把他的代码拷贝到自己的仓库里,方便自己修改和提交,接着就可以利用以下命令拷贝代码:
git clone https://gitee.com/liuxinouc/plunder_the_xuanyuan_sword.git
2. 修改和提交
# 将你的一切修改提交
git add .
# 为这次提交写点备注,类似于"这次提交修复了重启的bug"
git commit -m "Adding files"
# 这一步十分关键,目的是强制拉下这个分支最新代码,防止直接push后将他人代码覆盖
git pull -r
# 将代码提交
git push origin master
3. 查看提交记录
# 查看所有的提交记录
git log
# 查看某个函数的变更记录
git log -L :nidpsDetectPktsProc:rspackets.c
# 查看某个文件的变更记录
git log rspackets.c
# 查看文件每次提交的diff
git log -p filename
git提交的一些特殊场景
- 我想要拉最新代码,但是我已经在本地修改了一部分代码,一拉就会进入rebase。
# 强制回退版本,三种选其一
git rest --hard HEAD^:回退到上一版;
git rest --hard HEAD^^:回退到倒数第二版;
git rest --hard 3628164:回退到commit id为3628164的版本;
# 拉代码即可
git pull -r
2. 我已经提交了代码的commit,但我想修改commit的内容。
# 会进入修改界面,操作命令类似于vi/vim
git commit --amend
3. 我提交代码后,显示进入rebase。
# 进入到rebase,说明你提交的代码正好和另一个提交的代码发生了重叠,
# 你需要自己去校对,你的代码类似于添加了
func Old() {
<<<<<<< HEAD
=======
man1.Println("add new func")
>>>>>>> man1
}
# 修改源代码之后
git add .
git rebase --continue
4. 我本地修改了一些代码,但我忘了,我想看看
git diff
5. 单独拉一个自己的开发分支,然后自己单元测试后,合并到主分支master
git checkout -b mybranch
git merge master
git add .
git commit "Adding files"
git push origin mybranch
git checkout master
git merge mybranch
Reference
About - Git (git-scm.com)
Git 五分钟教程 | 菜鸟教程 (runoob.com)
https://www.jianshu.com/p/3d6606517c3a
(38条消息) git checkout -b 的详细讲解_weixin_30614587的博客-CSDN博客
猜你喜欢
- 2024-09-27 git生成公私钥,并放到github中,免用户名、密码下载代码
- 2024-09-27 这才是真正的Git——Git 全功能揭秘
- 2024-09-27 如果你还不会用git回滚代码,那你一定要来看看
- 2024-09-27 idea使用git stash暂存代码。#git
- 2024-09-27 嵌入式高手教程第7集 如何用Git管理本地代码 三哥说技术
- 2024-09-27 Java面试题之项目管理工具 Git 篇
- 2024-09-27 程序员开发必会之git常用命令,git配置、拉取、提交、分支管理
- 2024-09-27 Git 代码防丢指南(代码提交到git怎么忽略文件)
- 2024-09-27 git使用方法,自己整理记录一下(git怎么用?)
- 2024-09-27 Git常用命令基本操作指南总结(git 常见命令)
- 1510℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 545℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 498℃MySQL service启动脚本浅析(r12笔记第59天)
- 478℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 476℃启用MySQL查询缓存(mysql8.0查询缓存)
- 455℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 436℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 433℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)