首页 > 其他分享 >Git 笔记

Git 笔记

时间:2024-03-09 18:12:21浏览次数:21  
标签:文件 git -- dev 忽略 Git 笔记

Git学习

Git环境配置

git配置文件本质都是基本的文件

安装后必须配置项

# 配置用户信息
git config --global user.name ='用户名'
git config --global user.email ='邮箱地址

查看配置

git	config	-l

查看不同级别的配置文件:

# 查看系统config
git config --system --list
# 查看当前(global)config
git config --global --list

Git 相关配置文件:

1)系统配置文件:Git安装目录\Git\etc\gitconfig

2)用户配置文件:

Git基本原理

基本概念

  • 工作区:就是你在电脑里能看到的目录(本地目录)。

  • 暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,

    ​ 所以我们把暂存区有时也叫作索引(index)。

  • 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。

工作区

Git本地有四个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)、git仓库(Remote Directory)。文件在这四个区域之间的转换关系。

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

Index / Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息Repository: 仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本

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

构建Git项目

1.创建全新项目

# 项目初始化
git init

执行构建完成后,项目目录下会出现一个.git目录

2.克隆远程仓库

在gitee(国内)或者 GitHub(国外)

# 仓库地址URL
git clone [url]

Git文件操作

文件的四种状态

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

Unmodify: 文件已入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处,如果它被修改, 而变为Modified,如果使用git rm移出版本库, 则成为Untracked文件

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

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

查看文件状态

# 查看所有状态
git status
# 查看指定文件状态
git statu [filename]

忽略文件

在主目录下创建 .gitignore 文件,此文件有以下规则

  1. 忽略文件中的空行或者井号(#)开始的行将会 被忽略
  2. 可以使用Linux通配符。如 * 代表任意多个字符,? 代表一个字符,[abc] 代表字符的可选范围,{string1,string2.....} 代表可选的字符串等
  3. 如果名称最前面有一个( !) ,表示例外规则,将不被忽略
  4. 如果名称最前面有一个( / ) ,表示要忽略的文件在此目录下,而子目录的文件不被忽略
  5. 如果名称最后面有一个( / ) ,表示要忽略该目录下的为该名称的子目录,而非文件(默认文件和目录都被忽略 )
#  注释
*.txt			忽略所有.txt文件
!lib.txt  		lib.txt忽略除外
/temp			仅忽略项目根目录下的,不包括temp目录
build/ 			忽略build/目录下的所有文件
doc/*.txt		会忽略doc/a.txt, 但不忽略doc/other/b.txt

常用命令

1.项目初始化

git init

2.添加或连接远程github仓库

git remote add origin [仓库地址]

git remote add origin https://github.com/VanjunQQ/movie.git

3.查看连接的远程仓库

git remote

4.查看本地文件的状态

git status

5.暂存所有未暂存的文件

git add

6.提交暂存文件

git commit -m "说明"

7.推送/上传文件到远程仓库

git push

git push -u origin master

8.获取本地库的最新版本,检查新文件,分支,删除等

git fetch

9.拉取远程库最新版本文件

git pull

10.在远程库删除文件

git rm 文件名

多人协作

git checkout -b dev	//创建并切换到分支dev
//创建并切换到分支dev,同上
git branch dev	//创建
git checkout dev	//切换
//新版本
git switch -c dev	//创建并切换到分支dev
git switch master	//直接切换分支
git branch		//查看当前分支
git merge dev	(--no-ff)(-m)//合并,把dev分支的工作成果合并到master分支上
git branch -d dev	//删除dev分支 

git stash	//将现场储藏起来
git stash list	//查看储存的工作现场
//恢复和删除
git stash apply
git stash drop
//恢复并删除
git stash pop
git cherry-pick 4c805e2	//复制修改

git push origin master(dev)	//推送分支
git checkout -b dev origin/dev	//创建远程origin的dev分支到本地
git pull	//抓取分支(解决冲突)
git branch --set-upstream-to=origin/dev dev//指定本地与远程dev的链接
git rebase	//把本地未push的分叉提交历史整理成直线

标签:文件,git,--,dev,忽略,Git,笔记
From: https://www.cnblogs.com/vanjnbolg/p/18063081

相关文章

  • Manacher 学习笔记
    \(\text{Manacher}\)学习笔记定义所谓回文串,指的是对于一个字符串\(s\),若它的长为\(n\),下标从\(1\)到\(n\),如果\(\foralli\in[1,n],s_i=s_{n+1-i}\),那么字符串\(s\)是一个回文串。给定一个字符串\(s\),求解它总共的回文子串个数。对于这一类问题的求解,我们发现,因为......
  • DP学习笔记
    Part1:DP的本质相信每个同学,都曾经有过被DP虐的经历。大部分同学在初学DP的时候,总是见一道题背过一道题,最后基本上是学会所有常见的套路,然后开始套模板。然而,随着层次的提升,这种文科生的思维就不够用了——毕竟谁会在IOI上傻乎乎地出个石子合并或者是多重背包呢?这样,我们......
  • CF1635F 笔记
    好题啊。题意给定\(n\)个二元组\((x_i,w_i)\),保证\(x\)升序。有\(m\)个询问\([l,r]\),对于每个询问求出:\[\min\limits_{l\lei<j\ler}(x_j-x_i)\cdot(w_i+w_j)\]题解一个精妙的结论:设\(L_i\)表示\(i\)左边第一个满足\(w_j\lew_i\)的\(j\),\(R_......
  • MYSQL学习笔记22: 多表查询
    多表查询单表查询查询emp表select*fromemp;查询dept表select*fromdept;笛卡尔积(全组合)#emp表有4条记录,dept表有6条记录#笛卡尔积有4*6=24条记录select*fromemp,dept;消除无效的笛卡尔积(emp和dept通过dept_id连接)select*fromemp,deptw......
  • 神州笔记本 win11 节能模式 供电不足 自动关机
    刚刚买了一个神州笔记本没几天,用着用着就出现问题了。本人使用电脑有个极为不好的习惯,那就是会一次性打开特别多的应用,然后不关,一直留着,这个习惯虽然不好但也是一直没有啥问题的,不过最近换了个新的笔记本就出现了问题。神州笔记本开启省电模式:之所以开这个模式其实并不是为......
  • P5416 笔记
    前置知识:线段树分治。题意给定\(n\)个节点的树,每个节点有一个二元组集合\(S_i\)。这个集合有一个限制:\(S_i\)一定是\(S_{fa_i}\)中删除一个二元组或者加一个二元组,并且加进来的二元组互不相同。现在有\(m\)个询问,每个询问给出\(k,h\)表示查询\(\min\limits_{(x,c......
  • Java学习笔记——第十天
    面向对象高级(一)staticstatic是一个关键字,义为静态,可以修饰成员变量和成员方法。static修饰成员变量成员变量的分类类变量(静态成员变量):有static修饰的成员变量,它们属于类,在计算机里只有一份,会被类的全部对象共享。实例变量(对象成员变量):无static修饰的成员变量,属于每个对象,每......
  • Living-Dream 系列笔记 第2期
    本期主要讲解vector、map两个STL容器。知识点:首先,引入两种数组的区别:静态数组,指提前声明需要多少内存的数组,是连续的;而动态数组则是在插入元素时临时指定存储空间,不要求连续。STLvector是一个动态数组,下标默认从\(0\)开始。它支持的操作如下:定义:一维vector......
  • Living-Dream 系列笔记 第3期
    本期主要讲解二分查找。知识点二分查找:思想:分治。使用场景:在一个有序序列中,反复查找不同目标。时间复杂度:\(O(n\logn)\)。实现:对数列排序;确定二分边界(通常为L=最小下标-1,R=最大下标+1);伪代码:intL=左边界-1,R=右边界+1;while(L+1<R){intmid=(L+R)......
  • Living-Dream 系列笔记 第1期
    本期主要讲解模拟、枚举算法。例题T1简单模拟题。利用scanf/cin以int形式读入分和秒,并令秒循环累加,逢\(60\)归\(0\)并向分进\(1\),分则是逢\(24\)归\(0\)。在循环的过程中若分秒合起来是回文数字,则退出循环,按照题目格式输出当前时间。注意开始时间不算。#includ......