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

玩转git的第1章节:git的理论以及操作规则

一 git原理

1.1 git的操作原理

上图是Git与提交有关的三个命令对应的操作:

Add命令是把文件从IDE的工作目录添加到本地仓库的stage区

Commit命令把stage区的暂存文件提交到当前分支的仓库,并清空stage区

Push命令把本地仓库的提交同步到远程仓库

从git管理的角度文件只有两种状态:未跟踪以及已跟踪新建的文件或者修改的文件没有add之前都是未跟踪状态

由上图可知:在你的本地仓库,其实是由三部分组成: 版本库包含暂存区和分支

 工作区 (Working Directory) //看得见的

 版本库 (Repository)      //看不见的

 暂存区(Stage)

分支 (branch)

远程仓库:

IDEA中对操作做了一定的简化,Commit和Push可以在一步中完成。你现在的pull和push都是本地版本库和远程仓库之间的数据交互

1.2 git的操作流程

1)初次提交:

通过git add 将文件 工作区 ---》暂存区 (本地)

    通过git commit 将文件 暂存区 ---》分支 (本地)

    通过git pull 将文件 远程库 ---》分支 (本地)

通过git push 将文件 分支 ---》远程库 (github)

2)提交改动:

    通过git commit将文件 暂存区 ---》分支 (本地)

    通过git pull 将文件 远程库 ---》分支 (本地)

通过git push 将文件 分支 ---》远程库 (github)

1.pull更新最新代码

2.修改过代码之后,提交到本地仓库,commit;

3.pull代码,有冲突解决冲突

4.一切ok后,push代码

一般情况下,我们在push操作之前都会先进行pull操作,这样不容易造成冲突。

总结:

先从远程库拉取最新的代码

当推送自己代码之前,再次拉取远程库代码,如果有冲突,先解决冲突,再在本地提交。

假如你没有新建分支,请记住修改了文件一定要add commit ,假如你新建了分支,请记住一定要add commit merge千万记住,很多错误都来源于你这几步操作没有很好的完成。 

1.3 git的常用命令

   git init 初始化仓库

   git status  查看仓库状态

   git add  现在暂时有两个作用:1 将文件添加到被跟踪状态 2:将文件从工作区放到暂存区

   git commit  -m “xxxxx”  将文件提交到git仓库,让其管理

   git clone 仓库所有文件处于被跟踪状态

   git log  - -pretty=oneline  查看git日志

   git pull origin master  拉取仓库代码

   git push origin master  推送本地代码到远程仓库中

   Git branch xxxx; //创建分支

   Git checkout xxxx;切换到某个分支上

git checkout -b testing   新建分支并切换分支

1.4 fetch与pull的区别

相同点:都是获取更新的命令

不同点:Fetch是从远程仓库下载文件到本地的origin/master,然后可以手动对比修改决定是否合并到本地的master库。Pull则是直接下载并合并。

1.5 git版本库中文件颜色

1.褐红色 表示新建的文件, 需要add操作

2.绿色 表示通过add操作提交到本地仓库,需要commit操作

2.蓝色 表示修改的文件,需要commit操作

红色和蓝色,绿色都表示待提交项目,通过commit操作后,通过pull,push提交到远程仓库中。

1.6 git版本库中冲突问题的解决常规办法

如果push提交失败则表示,你本地项目没有进行更新,和服务器上的项目有冲突,需要解决冲突,然后才能提交。

当pull失败时,说明服务器上的代码和本地代码有冲突,这时则需要把本地有冲突的代码备份,然后还原,再pull,这时pull成功后,再把自己备份的代码部分,拷入相应的代码中,这时候再进行push就可以了

1.7 git托管中心

1.8 笔记资料

 

http://www.lryc.cn/news/45072.html

相关文章:

  • 【新2023Q2模拟题JAVA】华为OD机试 - 二叉树层次遍历
  • 轻松拿结果-第三部分 同欲 -第六章 有凝聚力才有战斗力
  • chatGPT 会给程序员带来失业潮吗?
  • Vue项目proxyTable跨域配置
  • ubuntu16.04搭建gitlab
  • SSMP综合案例
  • 让你的作品更出色——词云Word Cloud的制作方法(基于python,WordCloud,stylecloud)
  • axios请求拦截器
  • 四个常见的Linux技术面问题
  • 有什么适合程序员查资料的网站
  • (七)手把手带你搭建精美简洁的个人时间管理网站—实现登录与注册的前端代码【源码】
  • Day933.如何将设计最终落地到代码 -系统重构实战
  • 209. 长度最小的子数组
  • 【数据结构与算法】查找(Search)【详解】
  • 一文学会 Spring MVC 表单标签
  • 如何在 Windows10 下运行 Tensorflow 的目标检测?
  • 【jvm系列-04】精通运行时数据区共享区域---堆
  • ctfshow愚人杯 re easy_pyc wp
  • Ubuntu18.04 系统中本地代码上传至Gitlab库
  • Leetcode.1665 完成所有任务的最少初始能量
  • 【C++笔试强训】第一天
  • 【网络安全软件】上海道宁与Cybereason为您提供未雨绸缪的攻击保护,终结对端点、整个企业以及网络上任何角落的网络攻击
  • 基于RK3568的Android11 适配 MIPI 屏幕
  • Ubuntu安装python
  • django 运用pycharm的各种故障汇总(1)
  • 【设计模式】单例模式Singleton(Java)
  • 机器学习中的公平性
  • Docker镜像之Docker Compose讲解
  • 蓝桥杯30天真题冲刺|题解报告|第三十天
  • 配置 Git Husky 代码提交约束