前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >git第n次学习笔记

git第n次学习笔记

作者头像
天天Lotay
发布2023-01-10 10:47:40
3300
发布2023-01-10 10:47:40
举报
文章被收录于专栏:嵌入式音视频嵌入式音视频

git工作流程

git四个工作区域

Workspace:工作区,就是你平时存放项目代码的地方

Index/Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息

Repository:仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本

Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

git工作流程

Git的工作流程一般是这样的:

1、在工作目录中添加、修改文件;

2、将需要进行版本管理的文件放入暂存区域

3、将暂存区域的文件提交到git仓库

Git基础_文件的两种状态

版本控制就是对文件的版本控制,要对文件进行修改、提交等操作,首先要知道文件当前在什么状态,不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上。

注意: Git不关心文件两个版本之间的具体差别,而是关心文件的整体 是否有改变,若文件被改变,在添加提交时就生成文件新版本 的快照,而判断文件整体是否改变的方法就是用SHA-1算法计算 文件的校验和。

untracked未跟踪

未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制.通过git add 状态变为Staged.

tracked已跟踪

被纳入版本控制

Unmodified

文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完

全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为

Modified,如果使用git rm移出版本库, 则成为Untracked文

件。

Modified

文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout则丢弃修改过,返回unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改。

Staged

暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存,文件状态为Modified。

注意: 1.新建文件--->Untracked 2.使用add命令将新建的文件加入到暂存区--->Staged 3.使用commit命令将暂存区的文件提交到本地仓库--->Unmodified 4.如果对Unmodified状态的文件进行修改---> modified 5.如果对Unmodified状态的文件进行remove操作--->Untracked

Git基础_比较文件差异

diff是指的是两个事物的不同。例如在Linux系统中,diff命令会逐行比较两个文本的差异然后显示出来

git diff命令格式

语法结构:

代码语言:javascript
复制
git diff [--cached]

注意:

--- :标记原始文件

+++ :标记新文件

@@ :两个不同文件版本的上下文行号。

- : 原始文件删除改行

+ :原始文件增加一行

工作文件夹比较

代码语言:javascript
复制
git diff

把修改文件追加到索引区

代码语言:javascript
复制
git add .

无法比较工作文件夹的修改文件

代码语言:javascript
复制
git diff

索引区比较

代码语言:javascript
复制
git diff --cached

Git基础_还原文件

对于恢复修改的文件,就是将文件从仓库中拉到本地工作区,即 仓

库区 ----> 暂存区 ----> 工作区。

对于修改的文件有三种情况:

  1. 只是修改了文件,没有任何 Git 操作
  2. 修改了文件,并提交到暂存区(即编辑之后,gitadd但没有gitadd但没有 git commit -m ....)
  3. 修改了文件,并提交到仓库区(即编辑之后,gitadd和gitadd和 git commit -m ....)

情况I

只是修改了文件,没有任何 git 操作,直接一个命令就可回退

代码语言:javascript
复制
$ git checkout -- aaa.txt # aaa.txt为文件名

情况II

修改了文件,并提交到暂存区(即编辑之后,git add但没有gitadd但没有 git commit )

代码语言:javascript
复制
$ git log --oneline # 可以省略
$ git reset HEAD # 回退到当前版本
$ git checkout -- aaa.txt # aaa.txt为文件名

注意:

情况II 和 情况III 只有回退的版本不一样,对于 情况II,并没有 $git commit,仓库版本也就不会更新和记录,所以回退的是当前版本

情况III

修改了文件,并提交到仓库区(即编辑之后git add和gitadd和 gitcommit -m )

代码语言:javascript
复制
$ git log --oneline # 可以省略
$ git reset HEAD^ # 回退到上一个版本
$ git checkout -- aaa.txt # aaa.txt为文件名

注意:

git reset 版本号 ---- 将暂缓区回退到指定版本,根据 $ git log --oneline 显示的版本号,可以回退到任何一个版本,也可通过HEAD 来指定版本。

  1. HEAD 当前版本
  2. HEAD^ 上一个版本
  3. HEAD^^ 上上一个版

远程仓库

Git中存在两种类型的仓库,即本地仓库和远程仓库。

常见远程仓库托管平台

我们可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有GitHub、码云、GitLab等。

  1. GitHub(地址:https://github.com/)是一个面向开源及私有软件项目的托管平台,因为

只支持Git作为唯的版本库格式进行托管,故名GitHub。

  1. 码云(地址:https://gitee.com/)是国内的一个代码托管平台,由于服务器在国内,所

以相比于GitHub,码云速度会更快

  1. GitLab(地址:https://about.gitlab.com/))是一个用于仓库管理系统的开源项目,使用

Git作为代码管理工具,并在此基础上搭建起来的web服务。

Git远程仓库_远程仓库操作

添加远程仓库

添加一个新的远程Git仓库,同时指定一个可以引用的简写。

语法结构:

代码语言:javascript
复制
git remote add <shortname><url>

注意:

shortname :远程的名字(可以随意取名)

url : 远程仓库地址

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • git工作流程
  • git四个工作区域
  • git工作流程
  • Git基础_文件的两种状态
    • untracked未跟踪
      • tracked已跟踪
        • Unmodified
        • Modified
        • Staged
    • Git基础_比较文件差异
    • Git基础_还原文件
      • 对于修改的文件有三种情况:
        • 情况I
        • 情况II
        • 情况III
    • 远程仓库
      • 常见远程仓库托管平台
      • Git远程仓库_远程仓库操作
      相关产品与服务
      代码托管
      CODING 代码托管(CODING Code Repositories,CODING-CR)是为开发者打造的云端便捷代码管理工具,旨在为更多的开发者带去便捷、高效的开发体验,全面支持 Git/SVN 代码托管,包括代码评审、分支管理、超大仓库等功能。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档