Git使用

本文详细介绍了Git的三种状态(工作区、暂存区、存储区)及其转换,以及Git的基本工作流程,包括文件的添加、提交、查看状态、恢复、回退等操作。还讲解了如何设置用户信息、查看版本、连接远程仓库、拉取和推送代码。此外,还涉及了分支管理、解决冲突、忽略文件和前端项目常用忽略文件配置等内容。
摘要由CSDN通过智能技术生成

 Git的三种状态

分为三个区(工作区,暂存区,存储区)

1.Untracked files (工作区)新建文件,未被git管理()

2.modified (工作区)已修改,未将修改的结果放到暂存区  

2.stageed(暂存区)已暂存,对已修改的文件进行了标记,保存在待递交的列表中

3.committed(存储区)已递交到本地的git仓库中

Git工作流程

1.在工作区修改文件

2.文件Add进暂存区

3.递交更新commit,存储到git仓库

查看Git版本

git --version

返回:git version 2.29.2.windows.2

设置用户信息

解释:git全局配置 用户名

git config --global user.name "用户名"  

解释:git全局配置 邮箱地址
git config --global user.email "你的邮箱地址" 

只需要配置一次就行

设置好的用户信息存储目录:C:\Users\m1560\.gitconfig

git config --global user.name "用户名"
git config --global user.email "你的邮箱地址"

 查看git全局配置信息

git config --list --global 查看全局配置信息

git config user.name 查看用户名
git config user.email 查看email

git config --list --global

user.name=dazhi
user.email=2973901695@qq.com

git config user.name
git config user.email

获取帮助信息

git config -h

获取仓库的两种方式

1.将本地目录设置成git仓库

2.从远程服务器克隆一个git仓库
 

将现有目录初始化为Git仓库

1.进入项目目录,鼠标右键,打开 git bash

2.然后执行git init(会创建一个.git的隐藏目录,此目录就是当前项目的git仓库,不能删掉)

git init

把本地文件放到暂存区

3.1 git add . 会把本地所有untrack的文件都加入暂存区,并且会根据.gitignore做过滤

3.2 git add * 会忽略.gitignore把任何文件都加入

//向暂存区添加单个文件
git add a.txt

//向暂存区添加多个文件(根据忽略过滤)
git add .

//向暂存区添加多个文件(任何文件)
git add *

查看文件状态 

1.Untracked files 新建的文件,未被跟踪状态(红色状态,需要执行git add .)

2.Changes not staged for commit(工作区改变了,未被递交到暂存区,红色状态,需要执行git add .)

2.Changes to be committed 被跟踪处于暂存状态(处于暂存区,未被递交到仓库,绿色状态,需要执行 git commit -m 'xxxx')

git status
//精简模式
git status -s

从暂存区递交到本地仓库

1.-m后面是备注

2.-a -m 直接将工作区的代码,递交到git仓库(跳过git add)

git commit -m '提交黑马面面网站'

//跳过使用暂存区,直接递交到仓库
git commit -a -m 'zzzzdddqqqcc'

将本地仓库的文件恢复到工作区文件 

1.git checkout --

2.操作不可逆,危险操作

git checkout -- a.txt

连接远程仓库(关联本地与远程)

1.访问方式一:https,零配置,每次访问都需要输入账号/密码

2.访问方式二:SSH,配置公钥,每次访问不需要重复输入账号密码

3. 本地有仓库:直接git remote

4.本地无仓库:git init 等一系列操作

//添加远程仓库地址
git remote add origin 你新建的仓库地址



//https模式
例如: git remote add origin https://gitee.com/ZhiMaKes/uniappS

//ssh模式
例如: git remote set-url origin git@gitee.com:ZhiMaKes/uniapp2.git

查看远程仓库 

git remote -v

 拉取远程仓库

 git pull origin master

 git pull origin master  --allow-unrelated-histories

把本地仓库的文件推送到远程仓库 push

git push -u origin master

从暂存区移除文件

1.git reset HEAD

2.原来啥状态,还原成递交前的状态。(比如绿M到红M)

//从暂存区移除单个文件
git reset HEAD a.txt
//从暂存区移除全部文件
git reset HEAD .

跳过使用暂存区,直接递交到仓库

1.直接将工作区的代码,递交到git仓库(跳过git add)

git commit -a -m 'zzzzdddqqqcc'

本地移除文件

1.从工作区和仓库一起移除

2.只从工作区移除

//从仓库和工作区同时移除
git rm -f index.js
//只从工作区移除
git rm -r --cached  index.css

忽略文件

1.空格不匹配任意文件,可作为分隔符,可用反斜杠转义
2.#开头的文件标识注释,可以使用反斜杠进行转义
3.! 开头的模式标识否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用 ! 4.也不会再次被包含。可以使用反斜杠进行转义
5./ 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
6./ 开始的模式匹配项目跟目录
7.如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,如果该模式不在 .gitignore 文件中,则相对于项目根目录
8.** 匹配多级目录,可在开始,中间,结束
9.? 通用匹配单个字符
10.[abc] 通用匹配单个字符列表
 

查看本地库提交历史 

1.最下面小点,按回车,可以一致看所有历史

git log

 本地回退到指定版本

//在一行上显示所有递交历史
git log --pretty=oneline

ef9fa852857426cbc0e4230350966ebebf87a985 (HEAD -> 1) zz
85d4ec13a0b2eaf37673c7091de1ea63a5ba3561 wwww
12a42360e5ef4cd960812ba5e793c3da6a3c02a1 wwww
6d130c51d764529b0b6107e7df18ecb5d13d6007 asdasd
2c7113b5467204c40e5c8893350990e2cbd390e3 zzzz
c26c2c755c4c5f800b2fbd145223819d88b7e16c zzzzzz
cda853c38a36083542279901fe610c0ee61450ed init project2
91a9097bfaec95bf9bcb3437691e7b3825f21a2a init project2
5ec4561220af5ebdd25442904be20a110d44c4ab init project2
b7f1305d542b825ffd5ccb1772e237da80482c8d (branch2) init project2
ad3f49139eda1de6fcdb02da957ba452bec173d8 init project


//回退到指定版本
git reset --hard ID
例如:git reset --hard ad3f49139eda1de6fcdb02da957ba452bec173d8 

//在旧版本中查看所有的操作历史(不只是递交,包括删除,还原等)
git reflog --pretty=oneline

本地生成公钥

//生成公钥
ssh-keygen -t rsa -C "your_email@youremail.com" 

//查看公钥
cat ~/.ssh/id_rsa.pub

//查询公钥是否配置成功
ssh -T git@gitee.com

远程克隆代码到本地

git clone git@gitee.com:ZhiMaKes/uniapp.git

本地查看所有分支

 git branch
//当前所处分支
* master

本地创建新的分支

1.git branch + 名称 

2.新分支的代码和主分支的代码完全一样

git branch login

本地切换分支

1.切换分支后工作区的代码也跟着改变

2.git checkout +分支名

git checkout one

返回:Switched to branch 'login'

//当使用git checkout 切换分支时会提示you need to resolve your current index first
执行 
git reset --merge

本地快速创建并切换到新分支

1.git checkout -b 分支名

2.是创建和切换的合并写法

git checkout -b two

返回:Switched to a new branch 'two'

合并本地分支

1.在主分支上进行合并操作,将分支上的代码合并到主分支上

2.合并到主分支上后,子分支上的代码还是保持原来的样子

//切换到主分支
git checkout  master

//合并分支
git merge two

 删除本地分支

1.git branch -d +分支名称

git branch -d one

解决冲突

//1.主分支上手动进入冲突文件,然后进行修改

//2.修改完成后,再主分支上进行递交
git commit -a -m '解决了冲突'

 将本地分支推送到远程分支

1.git push -u 远程仓库别名  本地分支名称:远程分支名称(第一次)

1.git push 远程仓库别名  本地分支名称:远程分支名称(以后)

//(第一次)git push -u 远程仓库别名(默认都为origin)  本地分支名称:远程分支名称
git push -u origin two:two

//(第一次)本地和远程分支名称一致时,可以省略为
git push -u origin two

//(以后执行)
git push 远程仓库别名  本地分支名称
git push  origin two:two

查看远程分支的列表

1.git remote show +远程仓库名称

 git remote show origin
* remote origin
  Fetch URL: git@gitee.com:ZhiMaKes/uniapp2.git
  Push  URL: git@gitee.com:ZhiMaKes/uniapp2.git
  HEAD branch: master
  Remote branches:
    master tracked
    two    tracked
  Local branches configured for 'git pull':
    master merges with remote master
    two    merges with remote two
  Local refs configured for 'git push':
    master pushes to master (fast-forwardable)
    two    pushes to two    (up to date)

把远程分支同步到本地

1.git checkout +远程分支名称

git checkout two

拉取远程当前分支最新代码

fetch(获取)

pull(拉取)=获取+合并

拆解git pull 操作
git pull操作其实是git fetch 与 git merge 两个命令的集合。
git pull  等效于先执行 git fetch origin 当前分支名, 再执行 git merge FETCH_HEAD.

git pull

删除远程分支

1.git push origin --delete + 分支名

git push origin --delete two

工作流程

1.创建本地分支tabbar,写代码

2.将tabbar本地分支库递交到远程库tabbar(远程存储)

3.将tabbar分支代码递交到master主分支(合并本地分支)

4.将本地tabbar分支库删掉(删除本地冗余)

 前端忽略文件

1..gitignore

.DS_Store
node_modules
/dist

# local env files
.env.local
.env.*.local

# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw*

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值