当前位置: 首页 > 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显示数量和百分比
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • docker-consul
  • JSONP原理
  • leetcode98. Validate Binary Search Tree
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • mockjs让前端开发独立于后端
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • Vue全家桶实现一个Web App
  • 搭建gitbook 和 访问权限认证
  • 蓝海存储开关机注意事项总结
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 使用 QuickBI 搭建酷炫可视化分析
  • 数据结构java版之冒泡排序及优化
  • 线性表及其算法(java实现)
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 以太坊客户端Geth命令参数详解
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • #ubuntu# #git# repository git config --global --add safe.directory
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (LeetCode C++)盛最多水的容器
  • (二)WCF的Binding模型
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (十) 初识 Docker file
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)平衡树
  • (转)一些感悟
  • ******之网络***——物理***
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .htaccess配置重写url引擎
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .NET 反射 Reflect
  • .NET 使用配置文件
  • .net经典笔试题
  • .net通用权限框架B/S (三)--MODEL层(2)
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)
  • @Builder用法
  • @ComponentScan比较