git使用大全
- 基本介绍
- git 快速上手
- 一 环境安装(默认已安装)
- 二 远程仓库克隆到本地
- 1 进入rep文件夹目录
- 2 复制远程仓库地址
- 3 git clone克隆仓库内容到本地
- 4 修改后版本控制
- 4.1 修改文件
- 4.2 git status查看版本库文件状态
- 4.3 git add将文件加入版本库暂存区
- 4.4 git commit -m "修改1"将修改保存到本地仓库
- 4.5 git push 推送到远程仓库
- 可能会遇到的问题
- 如何配置账户信息?
- 关于输入密码(认证信息错误)
- 新建账户 push
- 查看仓库统计信息
- 设置用户名和邮箱地址
- 1 添加
- 2 修改
- 3 删除
- 4 查看
- 三 未创建远程仓库后对本地文件版本控制
- 参考
基本介绍
本人之前使用git没有展开系统学习,只会简单的git clone和push、pull绑定公钥、创建账户等入门操作,对于版本控制回溯,.ignore过滤,多人协同开发merge,创建dev和main开发和产品分支等工作中常用的场景功能不太熟悉,所以记录一下自己的进阶学习。
git 快速上手
本来想先介绍一下git的远程仓库和本地仓库上传,怕一上来太多大道理直接劝退了,还是直接开干,爬代码吧!学会怎么cv后再回过头来看会简单许多。
一 环境安装(默认已安装)
首先默认大家都安装好git环境了,没有安装的小伙伴直接搜个教程安装就好了,安装之后cmd输入git有这个界面就表示成功了。桌面右键也会有git bash
二 远程仓库克隆到本地
桌面有一个rep空文件夹,现在需要把gitee远程仓库克隆到此文件夹下
1 进入rep文件夹目录
右键目录 选择 Git Bash
进入到此界面
2 复制远程仓库地址
3 git clone克隆仓库内容到本地
输入 git clone [仓库地址]
显示done 100% 表示克隆成功。
查看目录结构
打开rep文件夹查看变化,此时文件夹下多了git-learn文件夹,就是clone下来的仓库,和仓库文件结构相比多了一个.git文件夹。
.git文件夹就是用来实现版本控制的关键,具体细节可以参考官方文档。
此时你就可以愉快的更改代码了
4 修改后版本控制
4.1 修改文件
新增了a.txt 文件,并在文件中写入 a.txt
4.2 git status查看版本库文件状态
git status表示版本库文件的修改状态
- 1 新增文件的状态
下面是对指令的详细翻译,为什么我要分别翻译一下?因为对于初学者这个时候就需要了解一下,版本追踪,分支,远程仓库,commit等概念了。这里可以不必深究,知道有这个东西就行,之前我也只是不求甚解会用就行。
On branch master 表示在master分支
Your branch is up to date with 'origin/master'.
origin远程仓库下的master分支
Untracked files: 未进行版本追踪文件
(use "git add <file>..." to include in what will be committed)
使用“git add <file>...”包含要提交的内容
a.txt
nothing added to commit but untracked files present (use "git add" to track)
没有添加任何内容到提交,但存在未跟踪的文件(使用“git add”来跟踪)
显示 a.txt为红色,表示未进行版本控制
4.3 git add将文件加入版本库暂存区
根据提示使用git add添加本地文件到暂存区,这里稍微解释一下暂存区的概念,git进行版本控制分为了 远程仓库和本地仓库,我们进行commit操作是将文件先上传到本地仓库,然后再上传到远程仓库。
简而言之,即暂存区Stage建立了文件和.git/objects目录下的对象实体之间的映射关系,只是一个简单的索引文件而已。指的是是 .git/index文件
- 注意区分 暂存区和本地仓库的关系
可以参考一下大佬的图解
带思维导图
Git 命令行操作 https://zhuanlan.zhihu.com/p/362100222
另一个大佬的图解
来源:https://zhuanlan.zhihu.com/p/263050507
4.4 git commit -m "修改1"将修改保存到本地仓库
直接使用git commit会打开vm编辑器,不太熟悉的小伙伴可能又懵逼了。
1 按 i 进入插入模式,在第一行输入想要的说明
2 按Esc退出插入模式后
3 输入:wq 保存退出
4 退出不了输入:wq! (!表示强制保存退出)
更多vm语法自己可以去官网深入学习
所以建议初学者使用git commit -m "修改信息"
的方式,再冒号内直接修改信息, -m表示message的意思。
再次输入 git status查看版本控制状态,显示nothing to commit 表示都已经进行了版本控制,说明没有文件可以进行版本控制,修改都已经提交到本地仓库了。
4.5 git push 推送到远程仓库
git push 推送修改到远程仓库
so easy啊
下图就表示推送成功啦
git remote [选项]
作用:设置或读取远程仓库相关的内容
使用git remote -v 查看远程仓库信息
查看远程仓库变化
可以看到添加进来了a.txt 并且显示了备注信息。
可能会遇到的问题
如何配置账户信息?
由于我之前已经配置好了gitee账户信息,很多小伙伴可能没有,就会出现报错
控制面板下搜凭据管理器 找到gitee账号信息,删除账户信息
此时修改a.txt后重新提交 看看报错。
git add .
“.” 表示本目录,会自动找被修改过的文件
可以看到commit之后push会弹出需要我输入gitee账户信息的操作,输入正确的账号密码之后
显示push成功
此时凭据管理器会把gitee账号信息长期保存,之后push都不用重新输入了!!!牛逼
关于输入密码(认证信息错误)
进入凭据管理器,修改账户信息,账号或者密码随便加个东西。重新push看看报错
显示账号或者密码错误,此时只需要重新改成正确的就行了
新建账户 push
查看仓库统计信息
进入仓库/统计 可以看到只有一个用户提交信息
新建一个用户重新push
git config -h 查看config
-h表示help
- 配置文件等级:
- global 用户级
- system 系统级
- local 项目级
这里我们使用local,配置只对当前库有效的角色,对于很多库多角色使用时很有用。
设置用户名和邮箱地址
新建一个用户alan重新提交代码 ,因为没有被修改,所以没有东西被提交。
切换用户:git config --local user.name “xxx”
查看用户信息
编辑a.txt 进行第三次修改
git push到远程仓库
查看远程仓库统计信息
此时提交信息新增了’alan’
我有点不顺眼这两个冒号,修改成alan,因为之前是双引号"alan" 所以用户名为’alan’
使用如下指令进行修改用户名然后查看用户名
git config --local --replace user.name 'alan'
git config user.name
切换账户为,第四次修改a.txt后再push
git界面
查看仓库统计信息
码飞用户进行了第四次提交
1 添加
git config --local user.name ‘abc’
git config --local user.email ‘abc@xxx.com’
2 修改
(1)覆盖的形式
git config --global user.name "yourName"
git config --global user.email "your@email.com"
(2)替换的形式
git config --global --replace-all user.name "yourName"
git config --global --replace-all user.email "your@email.com"
3 删除
git config --global --unset user.name "yourName"
git config --global --unset user.email "your@email.com"
4 查看
(1)查看所有
git config --list
(2)查看指定信息
git config user.name
git config user.email
三 未创建远程仓库后对本地文件版本控制
场景: 创建了本地文件,git未创建仓库
参考
1 图解Git操作,一篇就够 https://zhuanlan.zhihu.com/p/263050507
2 Git 命令行操作 https://zhuanlan.zhihu.com/p/362100222
3 添加、修改、删除以及查看本地git的用户名和邮箱 https://blog.csdn.net/womeng2009/article/details/101124910
4 【忽略文件版本控制gitignore详解,git-ignore精讲教程,2022年最新git基础使用,git进阶教程,git必备技能】 https://www.bilibili.com/video/BV1EG4y1Z7WW/?share_source=copy_web&vd_source=fe6c23f6f1353ed1eff5d5e866171572