当前位置: 首页 > news >正文

Git的一些常用操作

当你开始一个完整的项目时,git会是你经常接触到的,以下是今天学习到的一些常用操作,对于前端新手而言,足以。

Git的介绍和安装(略)

推荐廖雪峰的Git教程(https://www.liaoxuefeng.com/),里面介绍得非常详细,还有git的操作,值得好好学习和收藏。

开始创建

  • git init (创建本地仓库)
  • git add . (将项目添加至暂存区)
  • git commit -m "提交信息" (将项目提交至本地仓库)
  • git remote add origin http地址 (关联本地仓库与远程仓库,默认已创建了远程仓库(Github、码云……))
  • git push -u origin master (将项目推送至远程仓库)

至此,你已创建了本地仓库和远程仓库,此时,只有一个master分支。这是项目最初始的一个状态。

在实际开发过程中,我们并不会直接在master分支中进行修改,所以作为一个新人加入到新公司的项目,往往会拿到一个远程仓库地址,这时,你需要:

  • git clone 仓库地址 (先将项目克隆到自己的本地中)

当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,远程仓库的默认名称是origin。

  • git checkout -b dev-Jan origin/master (创建自己的远程仓库)
  • git push origin dev-Jan (将项目推送至dev-Jan远程仓库)

推送分支,就是把该分支上的项目提交推送到远程仓库。推送时,要指定本地分支,这样,Git就会把该分支推送到对应的远程分支上。

现在,你可以安心敲自己的代码。

协同工作

在工作中,你的小伙伴们时不时会push到master主分支,你需要将master主分支的最新提交拉到自己的项目中:git pull origin/master,进行合并,这样,确保整个项目代码是实时更新的。所以,将master拉到自己的项目中,应该是每天上班第一件事要做的事情。

clipboard.png

其次,当你的项目开发好了,推送到了自己的远程分支(origin/dev-Jan),而别的小伙伴需要合并你的代码,那么他会从你的远程分支(origin/dev-Jan)pull代码,在本地合并(git merge dev-Jan),若有冲突,解决冲突,再将合并的最新版本push到master主分支。反过来,你也需要这样做。

clipboard.png

再有,当小伙伴向master提交了内容,而你也试图推送。如果推送失败,则因为远程分支比你的本地更新,你需要先用git pull合并。如果合并有冲突,则解决冲突,并在本地提交;若是没有冲突或者解决冲突后,再用git push origin master推送就能成功!

clipboard.png

每个人都有自己的分支,我们在自己的分支里敲代码,再与其他小伙伴的分支进行合并,完成上线发布版,而master一般都是上线发布的,当然也有别的上线分支如dev,这需要看公司的具体业务了。

删除与抓取

  • 删除本地分支:git branch -d dev-Jan
  • 删除远程分支:git push origin : dev-Jan(冒号前面有空格)
  • 获取远程仓库所有分支信息:git fetch --all

git fetch 和 git pull的区别在于:git fetch 相当于是从远程获取最新到本地,不会自动merge,而git pull相当于是从远程获取最新版本并merge到本地

回退版本

git reset --hard head^ (回退/回滚上一个版本)

那如果又后悔了,想要回退/回滚到刚刚那个版本,那你可以使用命令 git reflog 或者 git log 查看历史版本信心,确定回退到哪一个版本。

$ git reflog
76c4d4f (HEAD -> master)HEAD@{0}: reset: moving to HEAD^
44c2edc (origin/master)HEAD@{1}: merge dev: Fast forward
76c4d4f (HEAD -> master)HEAD@{2}: checkout:moving form dev to master
44c2edc (origin/master)HEAD@{3}: commit:dev first init

git reset --hard HEAD@{1}

总结

综上,Git常用的一些命令有:

  • git init(从无到有的创建本地仓库)
  • git add . (将项目添加至暂存区)
  • git commit -m "提交信息" (将项目提交至本地仓库)
  • git remote origin http地址 (关联本地仓库与远程仓库)
  • git push -u origin master (将项目推送至远程仓库)
  • git pull origin master (从远程获取最新版本并merge到本地)
  • git fetch origin 远程分支:本地分支 (拉取远程分支,并创建本地分支,但不切换分支)
  • git checkout -b 本地分支 origin/远程分支(拉取远程分支,创建并切换到本地分支)
  • git branch -r (查看所有远程分支)
  • git branch -a (查看所有分支,本地的和远程的)
  • git branch -d dev-Jan(删除本地分支)

当然,还是推荐看廖雪峰的Git教程,讲的很详细呀,加油啦

相关文章:

  • 正确配置jstl的maven依赖,jar包冲突的问题终于解决啦
  • Java开发集合定义及案例详解
  • nginx请求转发
  • csv文件的格式
  • tomcat环境变量的配置
  • 人工智能技术会逐渐淘汰掉哪些职业?
  • 多线程编程(四)--线程同步
  • P4389 付公主的背包
  • 通过反射将数据库数据输入到指定类
  • java 中类似于goto语句的语法
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • iOS网络-NSURLSession/AFNetworking发送HTTPS网络请求
  • 打印机连接常见故障
  • -----二叉树的遍历-------
  • Highcharts tooltip显示数量和百分比
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • Logstash 参考指南(目录)
  • Python学习之路16-使用API
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • use Google search engine
  • VuePress 静态网站生成
  • 大数据与云计算学习:数据分析(二)
  • 当SetTimeout遇到了字符串
  • 前嗅ForeSpider教程:创建模板
  • 入手阿里云新服务器的部署NODE
  • 用Canvas画一棵二叉树
  • No resource identifier found for attribute,RxJava之zip操作符
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 组复制官方翻译九、Group Replication Technical Details
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #define用法
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (接口封装)
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • .chm格式文件如何阅读
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .NET CORE 第一节 创建基本的 asp.net core
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .net framework4与其client profile版本的区别
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • .NET和.COM和.CN域名区别
  • .Net小白的大学四年,内含面经
  • @Async注解的坑,小心
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @Query中countQuery的介绍
  • [2024最新教程]地表最强AGI:Claude 3注册账号/登录账号/访问方法,小白教程包教包会
  • [8-27]正则表达式、扩展表达式以及相关实战
  • [AAuto]给百宝箱增加娱乐功能
  • [ABP实战开源项目]---ABP实时服务-通知系统.发布模式