git详细笔记
馨er BOSS

git版本控制笔记详解

之前只简单的用过git,从网上学习过一些基本用法,但是还没有深入的学习过它,这样就导致我在一段时间后重新使用时遇到很多问题,所以在这里总结一下

1 版本控制的历史

1.1 集中式版本控制(CVCS)

CVS和SVN都属于集中式版本控制系统

主要特点是单一的集中管理的服务器,保存所有文件的修订版本;协同开发人员通过客户端连接到这台服务器,取出最新的文件或者提交更新

缺点:中央服务器不能出现故障

1.2 分布式版本控制(DVCS)

Git属于分布式版本控制系统

2 Bash,CMD,GUI的区别

2.1 Bash

bash就是一个shell,是Windows下的命令行工具,可以执行Linux命令。基于CMD,在CMD的基础上增添一些新的命令与功能

2.2 CMD

CMD是Windows操作系统上的命令行解释程序

2.3 GUI

提供一个图形用户界面来运行git命令

3 Git的基本使用

3.1 Git的配置选项

1
2
3
4
5
6
7
# 设置用户名和邮箱地址
git config --global user.name "jiucheng120"
git config --global user.email "sjx18536228249@163.com"

# 查看用户名和邮箱地址
git config user.name
git config user.email

3.2 Git的别名

1
2
3
4
5
6
7
8
# 设置别名
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status

# 使用
git st # 同git status

3.3 获取Git仓库

1
2
3
4
5
# 初始化Git仓库
git init

# 从Git远程仓库
git clone https://github.com/coderwhy/hy-react-web-music.git

3.4 文件的状态划分

未跟踪:默认情况下,Git仓库下的文件也没有添加到Git仓库管理中,需要通过add命令操作

已跟踪:添加到Git仓库管理的文件处于已跟踪状态,Git可以对其进行各种跟踪管理

  • staged:暂缓区中的文件状态
  • Unmodified:commit命令,可以将staged中文件提交到Git仓库
  • Modified:修改浏览某个文件后,会处于Modified状态

image-20221030211738651

3.5 检测文件的状态

1
2
3
4
5
6
# 查看状态信息
git status

# 查看更加简单的状态信息
git status -s
git status --short

3.6 文件添加到暂存区

1
2
3
4
5
# 将aaa.js添加到暂存区
git add aaa.js

# 把所有文件添加到暂存区
git add .

3.7 git忽略文件

.gitignore文件中可以写git中忽略的文件

3.8 文件更新提交

1
2
3
git commit -m "提交信息"

git commit -a -m "修改了bbb文件"

3.9 查看提交的历史

1
2
3
git log
git log --pretty=oneline
git log --pretty=oneline --graph

3.10 版本回退

1
2
3
4
5
6
7
8
# 回退到上一个版本
git reset --hard HEAD^

# 回退到上1000个版本
git reset --hard HEAD~1000

# 回退到指定版本
git reset --hard 2d44982

4 远程服务器

4.1 管理远程服务器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看远程地址
git remote
# 查看远程地址(冗长的)
git remote -v

# 添加远程地址
git remote add <shortname> <url>
git remote add gitlab http://152.136.185.210:7888/coderwhy/gitremotedemo.git

# 重命名远程地址
git remote rename gitlab glab

# 移除远程地址
git remove gitlab

4.2 本地分支的上游分支

在没有跟踪的情况下,我们直接执行pull操作的时候必须指定从哪一个远程仓库中获取内容

1
2
3
4
5
6
# 指定从哪一个远程仓库中的哪一个分支中获取内容(没有跟踪的情况)
git pull origin master

# 设置跟踪分支
git branch --set-0upstream-to=origin/master
git pull

4.3 拒绝合并不相干的分支

1
2
# 允许合并不相干的分支
git merge --allow-unrelated-histories

4.4 远程仓库的交互

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
git clone 地址

# 将代码push到远程仓库
git push
git push origin master

# 从远程仓库获取最新的代码
git fetch
git fetch origin

# 合并到本地仓库
git merge

# 从远程仓库pull代码
git pull

4.5 Git标签

1、创建tag

1
2
3
4
5
6
7
git tag v1.0

# 添加附注信息
git tag -a v1.1 -m "附注标签"

# 必须显示传送到远程仓库服务器上
git push origin v1.0

2、删除和检出tag

1
2
3
4
5
6
7
8
# 删除本地tag
git tag -d v1.1

# 删除远程tag
git push origin --delete v1.1

# 检出tag
git checkout v1.0

4.6 分支

1、创建分支

1
2
3
4
5
6
7
8
# 创建分支
git branch testing

# 切换分支
git checkout testing

# 创建并切换分支(一条命令搞定)
git checkout -b testing

2、查看分支

1
2
3
4
5
6
7
8
# 查看当前所有的分支
git branch
# 查看当前所有的分支,同时查看最后一次提交
git branch -v
# 查看所有合并到当前分支的分支
git branch --merged
# 查看所有没有合并到当前分支的分支
git branch --no-merged

3、删除分支

1
2
3
4
# 删除当前分支
git branch -d hotfix
# 强制删除某一个分支
git branch -D hotfix

4、远程分支的管理

1
2
3
4
5
6
7
# 推送分支到远程
git push origin <branch>
# 跟踪远程分支
git checkout --track <remote>/<branch>
git checkout <branch>
# 删除远程分支
git push origin --delete <branch>

5 Git常见命令速查表

image-20221030223552503

  • 本文标题:git详细笔记
  • 本文作者:馨er
  • 创建时间:2022-10-29 22:26:29
  • 本文链接:https://sjxbbd.vercel.app/2022/10/29/d3ef284c36d7/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!