Git 笔记

何为Git

Git 是一个免费的、开源的分布式版本控制系统,可以方便管理自己的代码、方便多人协作开发

首先需要先安装git官网

安装教程我就不说了,可能还需要配置一下秘钥

Git命令

仓库操作

设置用户签名

用户签名用于识别区分版本提交者的信息,如果没有则不能提交代码

git config --global user.name 用户名

git config --global user.email 邮箱

git config --global user.name Lrc

git config --global user.email lrcgyh@gmail.com

//设置完毕可以在c盘中个人用户文件夹.gitconfig文件夹中查看
或者用命令cat ~/.gitconfig直接查看

初始化本地库

在一个文件夹下使用此命令,会在该文件夹下初始化一个本地代码仓库,分支名为master

git init

查看本地库状态

用于查看本地是否有新的文件未提交至暂存区(.git/index)本地库

git status

将本机文件添加到暂存区

git add 文件名

git add test.txt
git add .	// 将所有文件添加至暂存区

将暂存区文件提交到本地库

git commit -m "日志信息" 文件名

git commit -m "my first commit" 	//提交所有文件

查看历史记录

git reflog

git log:查看日志

git log --graph:查看分支合并日志

版本穿梭

版本穿梭后,本机文件会替换至穿梭后版本的内容

git reset --hard 版本号

git reset 	// 把暂存区文件退回至工作区

git reset --hard *******(七位数)	// 退回指定版本

git reset --hard HEAD^	// 退回上一个版本
git reset --hard HEAD~10	// 退回上第10个版本

删除工作区文件

git rm 文件名

git rm README.md

分支操作

分支就相当于基于当前项目,新建一个副本,用于开发新的功能,最后可以将分出去开发其他功能的新分支直接合并至主分支上,方便快捷

创建分支

git branch 分支名

查看分支

git branch

git branch -v

切换分支

git checkout 分支名

可与用 git checkout -b 分支名 快捷创建一条新分支并切换至新分支上

除了checkout命令,切换分支还有个新的命令方式

git switch 分支名

可与用git switch -c 分支名快捷创建一条新分支并切换至新分支上

合并分支

git merge 分支名:将指定分支名分支合并到当前分支

默认是快速合并(fast forward)模式,如果删除后git log不能查看到被合并分支的历史

我们可以加上参数--no-ff,禁用快速合并模式,普通模式下合并分支删除后可以通过git log查看到被合并分支的历史

git merge --no-ff 分支名

分支冲突:

分支冲突产生原因:
在分支合并时,当同一个文件两个分支都有新的内容提交,再对两个分支合并,git无法执行快速合并,就会产生分支冲突

解决办法:

​ 手动修改冲突文件内容,再重新提交

注意:

  1. 发生冲突时commit提交时不能加上文件名。
  2. 合并后只改变了当前分支的文件内容,被合并的分支文件内容不会改变

删除分支

删除:git branch -d 分支名

如果新的分支没有被合并过,只能强制删除

强制删除:git branch -D 分支名

标签管理

用于给每一个commit打上一个别名,方便了解每一个版本都是啥玩意

# 查看所有标签
git tag

# 给当前分支创建标签
git tag 标签名

# 给指定conmmit版本创建标签
git tag 标签名 版本号

# 创建带有说明的标签
git tag -a 标签名 "说明信息" 版本号

# 查看标签详细信息
git show 标签名

# 删除本地标签
git tab -d 标签名

# 将指定标签推送至远程
git push 别名 标签名

# 将所有标签推送至远程
git push 别名 --tags

# 删除远程标签
git push 别名 :refs/tags/标签名	// 先删除本地标签,再删除远程标签

规范

在系统开发过程中常用的环境:

  • DEV 环境(Development environment):用于开发者调试使用
  • FAT环境(Feature Acceptance Test environment):功能验收测试环境,用于测试环境下的软件测试者测试使用
  • UAT环境 (User Acceptance Test environment):用户验收测试环境,用于生产环境下的软件测试者测试使用
  • PRO 环境(Production environment):生产环境

分支命名规范

分支 功能 环境 可访问
master 主分支,稳定版本 PRO
develop 开发分支,最新版本 DEV
feature 开发分支,实现新特性
test 测试分支,功能测试 FAT
release 预上线分支,发布新版本 UAT
hotfix 紧急修复分支,修复线上bug

Git Commit 规范

完整版
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
或简易版:
<type>(<scope>):<subject>
type类型
  • feature: 新增功能
  • optimize: 优化
  • fix: 修复bug
  • docs: 仅文档更改
  • style: 不影响代码含义的更改(空白、格式设置、缺失 分号等)
  • refactor: 重构,既不修复bug也不添加特性的代码更改
  • perf: 改进性能的代码更改
  • test: 添加缺少的测试或更正现有测试
  • chore: 对构建过程或辅助工具和库(如文档)的更改
  • build:改变构建流程,新增依赖库、工具等(例如webpack、gulp、npm修改)

Github

  1. 首先在github上创建一个仓库,获取仓库链接,克隆到本地

    git clone 仓库链接
    
  2. 在本地给仓库创建别名,默认别名都是origin

    1. git remote -v:查看当前本地库关联所有的远程库别名
    2. git remote add 别名 仓库地址:创建别名并与远程库关联
    3. git remote rm 别名:删除与远程库的关联
  3. 推送本地分支到github仓库

    1. git push 别名 分支名

别名:是本地git仓库与远程仓库链接时设置的别名
分支名:是远程仓库的分支名
git push lrc master:将本地的 lrc 别名仓库提交到远程的 master 分支
git push 别名 <本地分支名>:<远程分支名>:将本地指定分支推送到远程指定分支,也可以用于新建远程分支

第一次推送到仓库如果仓库是空的可能会推送不成功,需要加-u

git push -u 别名 分支名

也可以直接使用远程仓库链接

git push 远程仓库地址链接

还有一种情况是仓库中已经存在文件了,运行如下命令,可以拉取远程仓库中文件到本地,接下来就可以推送成功了

git pull  
git pull origin master  
git pull origin master --allow-unrelated-histories
  1. 将远程仓库拉取到本地,合并远程分支和本地分支

    git push相当于两条命令:git fetch(拉取到本地库) + git merge(合并到工作区)

    1. 别名 + 分支名

      git pull 远程库地址别名 远程分支名
      
    2. 也可以直接使用远程仓库链接

      git pull 远程仓库地址链接
      
  2. 克隆远程仓库到本地

    要注意的是克隆的仓库会自动取好别名:origin

    1. git clone 远程地址链接
  3. 同团队协作

  4. 跨团队协作

​ 如果不是项目团队成员,需要先fork项目到自己的github,再在线操作项目或者clone到本地修改,最后可以将自己修改的代码提交给项目原来的仓库

vim基础

通过vim命令进入文本后,首先需要选择模式

Insert模式:输入i,修改文档

Visual模式:输入v,选择文档内容

简单命令

vim + 文件名	打开文本

esc + :wq	保存修改并退出
esc + :q!	强制退出
esc + :q	退出

dd:删除当前行

yy:复制当前行

p: 粘贴当前行
posted @ 2024-03-13 17:53  Liu-RC  阅读(7)  评论(0)    收藏  举报