Git笔记

1.GIt是什么?

Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。

2.Git的特点

Git是目前世界上最先进的分布式版本控制系统,在处理各种项目时,都十分高效,而且非常的高大上.

3.Git 配置

git config --global user.name "用户名" # 设置用户名
git config --global user.email "邮箱地址" # 设置邮箱email

因为Git是分布式版本控制系统,所以每个分支都要有自己的名字和邮箱,
注意git config命令的--global参数,用了这个参数,表示你这个分支上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

4.Git工作原理

Git工作区域

  • 工作区 :平时存放项目代码的的地方
  • 暂存区:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
  • 本地仓库:就是安全存放数据的位置,这里面有你提交到所有版本的数据。

5.Git的命令和常规操作

init   git管理初始化
add    工作区文件添加到暂存区
	git add 文件名    将指定的文件添加到暂存区
	git add .        将工作区所有的文件添加到暂存区
	git add *        将工作区所有的文件添加到暂存区
commit 暂存区文件添加到仓库区
	git commit -m '提交的描述'
status 查看项目状态
log    查看历史提交记录
reset  回退提交的版本
reflog 查看所有提交记录

 6.版本的回溯与前进

提交一个文件,有时候我们会提交很多次,在提交历史中,这样就产生了不同的版本。每次提交,Git会把他们串成一条时间线。如何回溯到我们提交的上一个版本,用git reset --hard + 版本号即可。 版本号可以用git log来查看,每一次的版本都会产生不一样的版本号。回溯之后,git log查看一下发现离我们最近的那个版本已经不见了。但是我还想要前进到最近的版本应该如何?只要git reset --hard + 版本号就行。退一步来讲,虽然我们可以通过git reset --hard + 版本号,靠记住版本号来可以在不同的版本之间来回穿梭。但是,有时候把版本号弄丢了怎么办?git reflog帮你记录了每一次的命令,这样就可以找到版本号了,这样你又可以通过git reset来版本穿梭了。

撤销

  • 场景1:在工作区时,你修改了一个东西,你想撤销修改,git checkout -- file。廖雪峰老师指出撤销修改就回到和版本库一模一样的状态,即用版本库里的版本替换工作区的版本。
  • 场景2:你修改了一个内容,并且已经git add到暂存区了。想撤销怎么办?回溯版本,git reset --hard + 版本号,再git checkout -- file,替换工作区的版本。
  • 场景3:你修改了一个内容,并且已经git commit到了master。跟场景2一样,版本回溯,再进行撤销。

删除

如你git add一个文件到暂存区,然后在工作区又把文件删除了,Git会知道你删除了文件。如果你要把版本库里的文件删除,git rm 并且git commit -m "xxx". 如果你误删了工作区的文件,怎么办?使用撤销命令,git checkout --<file>就可以。这再次证明了撤销命令其实就是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

7.文件忽略

介绍

对于无需使用git进行管理的文件或文件夹使用此文件进行配置

使用步骤:

(1)在.git的同级目录下创建 .gitignore文件,注意:前面有一个

(2)在文件中添加要忽略的文件名称或文件夹名称

常用配置规则:

(1) /git-demo1/ 过滤整个文件夹

(2) *.txt 过滤所有.txt文件

(3) /git-demo1/a.html 过滤某个具体文件

8.分支

介绍

git版本控制系统支持分支操作。使用分支意味着可以从开发主线上分离开来,然后在不影响主线的同时继续工作。默认只有一个分支为master主分支。

什么是主分支?

在初始化本地 Git 仓库的时候,Git 默认已经帮我们创建了一个名字叫做 master 的分支。通常我们把这个master 分支叫做主分支

主分支的问题

在进行多人协作开发的时候,为了防止互相干扰,提高协同开发的体验,建议每个开发者都基于分支进行项目功能的开发

分支解决问题:

master用来保存和记录整个项目已完成的功能代码。但是不允许程序员直接在master 分支上修改代码,这样做的风险太高,容易导致整个项目崩溃。

分支相关命令:

创建分支

branch 分支名 
    语法:git branch 分支名
    作用:创建一个指定名称的分支

查看当前所有分支

branch
    语法:git branch 
    作用:查看已有分支列表

当前的分支会有一个*

切换不同分支

checkout
    语法:git checkout 分支名
    作用:切换不同的分支

合并分支

merge
    语法:git merge 分支名
    作用:将指定名称的分支合并到当前分支

9.远程仓库

分类:

(1)github:github是一个基于git的代码托管平台,在国外,速度比较慢,在大陆的使用很受影响

(2)gitee:gitee是一个基于git的代码托管平台,国内使用频率较多

(3)公司自己部署,了解即可,强调不是前端人员部署的,使用步骤和命令都一样

操作流程:

注册

创建远程仓库

本地文件推送到远程仓库

克隆和同步远程仓库

相关命令

remote add     把远程仓库地址添加到本地。使本地仓库和远程仓库产生关联 
remote -v      查看远程地址信息
push
			   1、如果使用-u参数,则第2次及以后可以直接使用git push把本地推送到远程仓库
			   2、添加gitee的账号和密码,正确则正常推送
clone          拷贝一个远程仓库到本地。
pull
			   当本地已有远程仓库,而远程仓库如果已经有更新,则可以使用此命令更新本地仓库。
			   例如:下班git push,早上上班 git pull

示例:

1)将远程仓库地址添加到本地:
git remote add origin https://gitee.com/dillionf/demo20211207.git
2)将本地仓库数据推送到远程仓库
git push -u origin master

注意:origin为远程仓库的名称,可以自定义
3)拷贝一个远程仓库到本地
git clone https://gitee.com/lyt-top/vue-next-admin.git

4)git pull --rebase origin master  从远程服务器更新项目到本地仓库

其他命令:git remote rm origin 删除远程仓库地址

注意:

1)在使用pull命令从远程服务器拉去项目内容时,要保证本地仓库的版本低于远程服务器

2)运行 git pull 通常会从远程服务器上抓取数据并自动尝试合并到当前所在的分支。

10.SHH访问

简介:传统方式访问远程仓库的问题:传统方式本地和远程传输,需重复输入gitee的账号和密码,较为繁琐。SSH好处:免登录身份认证、数据加密传输。而SSH实现本地仓库和gitee之间免登录的加密数据传输。更重要的原因是团队协同开发更加方便。

SSH组成: (1)id_rsa 私钥文件,存放于开发者的电脑中 (2)id_rsa.pub 公钥文件 。

生成密钥步骤:1、打开Git Bash 2、执行相关命令 3、连续敲击3 次回车

相关命令

ssh-keygen

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

解释:生成公钥和密钥。特殊说明:会生成在C:\Users\用户名文件夹.ssh目录中。

ssh

ssh -T git@gitee.com

配置ssh:

(1)使用记事本打开id_rsa.pub文件,复制里面的文本内容

(2)登录gitee,点击头像-> 设置-> 安全设置:SSH公钥 -> 添加公钥

(3)将id_rsa.pub 文件中的内容,粘贴到公钥 对应的文本框中

(4)在Title 文本框中任意填写一个名称,来标识这个Key 的所有者是谁

注意:

1)若需要通过https的方式访问别人的public开源库,则可以通过输入用户名、密码的方式来完成提交(但一定要保证本地账户凭据与远程一致,若不一致,则使用下面步骤来修改)。

步骤:控制面板-用户账户-管理Windows 凭据-修改普通凭据即可

2)若使用SSH方式来提交仓库,则需要在账户中配置公钥(一个公钥对应一个私钥,若多人,需添加多个公钥)

git常用命令

git init   初始化
 
git status    检测当前文件夹的文件状态
 
git add .   管理所有的文件(工作区->暂存区)
 
git config --global user.email “邮箱”    配置个人邮箱(只执行一次)
 
git config --global user.name “用户名”   配置个人用户名(只执行一次)
 
git commit -m ‘描述信息’   生成版本(暂存区->版本库)
 
git log   版本修改记录:最上面的是最新的
 
git reset --hard 版本号    回滚(版本库->工作区)(版本号:是git log记录中commit后面的一串数字)
 
git reflog   版本修改记录:最上面的是最新的,包括你进行回滚的记录(版本号:是git reflog记录中前面的一串数字)
 
git reset head 修改的文件名    回滚(暂存区->工作区)
 
git checkout 修改的文件名     回滚(工作区修改的文件->工作区)
 
git reset --soft 版本号         回滚(版本库->暂存区)

文件忽略
创建 后缀.gittignore文件

/mtk:过滤整个文件夹;
*.zip:过滤所有.zip文件;
/mtk/index.html:过滤某个具体文件;/

分支命令
branch
    语法:git branch 
    作用:查看已有分支列表
branch 分支名 
    语法:git branch 分支名
    作用:创建一个指定名称的分支
checkout
    语法:git checkout 分支名
    作用:切换不同的分支
merge
    语法:git merge 分支名
    作用:将指定名称的分支合并到当前分支

远程仓库

remote add     把远程仓库地址添加到本地。使本地仓库和远程仓库产生关联 
remote -v      查看远程地址信息
push
               1、如果使用-u参数,则第2次及以后可以直接使用git push把本地推送到远程仓库
               2、添加gitee的账号和密码,正确则正常推送
clone          拷贝一个远程仓库到本地。
pull
               当本地已有远程仓库,而远程仓库如果已经有更新,则可以使用此命令更新本地仓库。
               例如:下班git push,早上上班 git pull

1)将远程仓库地址添加到本地:
git remote add origin https://gitee.com/dillionf/demo20211207.git
2)将本地仓库数据推送到远程仓库
git push -u origin master

注意:origin为远程仓库的名称,可以自定义
3)拷贝一个远程仓库到本地
git clone https://gitee.com/lyt-top/vue-next-admin.git

4)git pull --rebase origin master  从远程服务器更新项目到本地仓库

git remote rm origin 删除远程仓库地址


SSH访问
SSH组成: (1)id_rsa 私钥文件,存放于开发者的电脑中 (2)id_rsa.pub 公钥文件 。
生成密钥步骤:1、打开Git Bash 2、执行相关命令 3、连续敲击3 次回车
相关命令
ssh-keygen
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
解释:生成公钥和密钥。特殊说明:会生成在C:\Users\用户名文件夹\.ssh目录中。

### 关于Git使用的Markdown格式笔记或模板 在创建有关Git使用的Markdown笔记时,可以遵循一定的结构来确保清晰性易读性。下面是一个基于最佳实践构建的示例模板: #### 1. 文档标题 # Git 基础操作指南 #### 2. 版本控制简介 版本控制系统允许团队成员协作开发项目而不必担心文件冲突。Git 是最流行的分布式版本控制系统之一。 #### 3. 安装与配置 安装完成后需设置用户名邮箱以便追踪贡献者身份。 ```bash git config --global user.name "Your Name" git config --global user.email you@example.com ``` 为了简化后续的身份验证过程,可以通过存储凭证辅助器来保存登录信息[^1]: ```bash git config --global credential.helper store ``` #### 4. 创建仓库 初始化新仓库或将现有目录转换为Git库: ```bash cd /path/to/my_project git init ``` 克隆远程仓库到本地机器上: ```bash git clone https://github.com/user/repo.git ``` #### 5. 日常工作流 添更改至暂存区并提交更新: ```bash git add . git commit -m "描述性的消息" ``` 查看当分支状态以及最近一次提交的信息: ```bash git status git log --oneline ``` 推送本地改动到远端服务器: ```bash git push origin main ``` 拉取最新的上游变更并与本地同步: ```bash git pull origin main ``` #### 6. 分支管理 创建新的特性分支用于隔离功能开发: ```bash git checkout -b feature_branch_name ``` 切换回主干继续其他任务: ```bash git checkout main ``` 合并已完成的功能回到主线之先确保已经获取最新版main分支的内容: ```bash git merge feature_branch_name ``` 删除不再需要的工作副本: ```bash git branch -d feature_branch_name ``` #### 7. 解决冲突 当多人编辑同一部分代码时可能会发生冲突,在这种情况下需要手动调整直至解决所有分歧之处再完成合并流程。 #### 8. 标签打点 给特定版本打标签有助于标记重要里程碑如发布日期等特殊时刻: ```bash git tag v1.0.0 git push origin --tags ``` 此模板不仅涵盖了基本概念还包含了实际应用场景下的常用指令集,非常适合初学者作为入门参考资料使用。通过这种方式整理出来的笔记既直观又实用,能够帮助读者快速掌握Git的核心技能[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值