git基础(一):基本概念、工作流程

git工作流程

1、克隆仓库

bash 复制代码
git clone http://xxxxxxxxxxxx

2、创建新分支

java 复制代码
git checkout -b new-feature

3、暂存文件

java 复制代码
git add fileName
git add .

将修改过的文件添加到暂存区

4、提交修改

将暂存区的更改提交到本地仓库

java 复制代码
git commit -m "add new feature"

5、拉取最新更改

java 复制代码
git pull origin main

6、推送至远程仓库

java 复制代码
git push origin new-feature

7、创建PR(pull requrest)

在github或其他平台上创建一个PR,邀请团队成员进行review,将更改合并到主分支

8、合并更改

将主分支的内容合并到本地分支

java 复制代码
git checkout main
git pull origin main
git merge new-feature

9、删除分支

java 复制代码
git branch -d new-feature              删除本地分支
git push origin --delete new-feature   删除远程分支

git工作区、暂存区和版本库的概念

  • 工作区:在电脑上能看到的目录
  • 暂存区:一般在.git目录下的index文件中
  • 版本库:.git目录是git版本库

git add: 工作区 --> 暂存区

git commit: 暂存区 --> 版本库,同时master分支做出对应的更新

git reset head: 暂存区的目录树替换为master分支指向的目录树

git checkout: 用暂存区的文件替换工作区的文件,会导致工作区未add的内容丢弃

工作区修改的文件还未被添加到版本控制中

暂存区是一个临时存储区域,包含即将被提交到版本库中的文件快照,在提交之前,可以选择性的将工作区的修改添加到暂存区

java 复制代码
git add .
git status 查看在暂存区的文件

版本库包含项目的所有版本历史记录

每次提交都会在版本库中创建一个新的快照,这些快照不可变动,确保项目的完整历史记录

版本库分为本地版本库和远程版本库,本地版本库存储在.git目录中,包含所有提交的对象和引用

java 复制代码
git commit -m "【feat】xxxx"  将暂存区的更改提交到本地版本库
git log   查看提交历史
git diff  查看工作区和暂存区的差异
git diff --cached   查看暂存区和工作区最后一次提交之间的差异

远程仓库 ==> 本地版本库

java 复制代码
git pull origin branch-name
或
git fetch origin branch-name
git merge origin/branch-name

如何创建git仓库

使用任何一个目录作为git仓库

java 复制代码
git init 

从远程仓库中拷贝项目

java 复制代码
git clone <repo> <directory>

配置

java 复制代码
git config --list 显示当前配置
git config -e   编辑配置
git config -e --global  编辑全局配置

git基本操作

提交与修改

  • git add : 添加文件到暂存区
  • git status: 查看仓库当前状态,显示有变更的文件
  • git diff: 比较文件的不同
  • git commit: 提交暂存区到本地仓库
  • git reset: 回退版本
  • git rm:将文件从暂存区和工作区删除
  • git mv: 移动或冲命名工作区文件
  • git notes: 添加注释
  • git checkout: 切换分支
  • git switch:更清晰的切换分支
  • git restore: 恢复或撤销文件的更改
  • git show: 显示git对象的详细信息

提交日志

  • git log 查看历史提交记录
  • git blame 以列表形式查看指定文件的历史修改记录
  • git shortlog:简洁的提交日志
  • git describe: 生成一个可读的字符串来描述当前的提交

远程操作

  • git remote:远程仓库操作
  • git fetch:从远程获取代码库
  • git pull:下载远程代码并合并
  • git push:上传远程代码并合并
  • git submodule:管理包含其他Git仓库的项目

git文件状态

工作区:

  • 未跟踪 untracked:新创建的文件,未被git记录
  • 已修改 modified:发生了更改,但未被提交到Git记录中

暂存区:

暂存区,也称为索引(index),是一个临时存储区域

java 复制代码
git add <fileName>
git add .

本地仓库 local repository

在.git目录中的数据库,存储项目的所有提交历史记录,每次提交更改时,会将暂存区的内容保存到本地仓库中

java 复制代码
git commit -m "commit message"

文件转换流程:

未跟踪 ==> 已跟踪 ==> 已修改 ==> 已暂存 ⇒ 已提交

相关推荐
楠丶7 小时前
无界(wujie)微前端项目搭建,nginx线上部署,pnpm一键安装依赖、启动应用,git代码仓库存放方式
前端·git·nginx·前端框架
iiiiiankor9 小时前
Git忽略除了指定文件以外的所有文件
git·.gitignore
心肝到爆13 小时前
vue3项目最新eslint9+prettier+husky+stylelint+vscode配置
前端·javascript·vue.js·git·前端框架·node.js
杰哥的技术杂货铺15 小时前
mac解决 Unsupported Git Version 2.15.0 At least 2.17.0 is required
git·macos
Yubaibaioo1 天前
Github提交Pull Request教程 & Git基础扫盲(零基础易懂)
git·github
陈善强1 天前
git lfs 上传超大文件
git
研发与思维1 天前
Git常用命令参考手册
git
前端 贾公子1 天前
POP3/SMTP服务、获取授权码(以QQ为例)
git·github
沉木渡香1 天前
[docker中首次配置git环境]
git·docker·容器