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"

文件转换流程:

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

相关推荐
利刃大大2 小时前
【Git】五、多人协作
git
逸Y 仙X9 小时前
Git常见命令--助力开发
java·大数据·git·java-ee·github·idea
wgslucky11 小时前
pipeline 使用git parameter插件实现动态选择分支构造
git
春天姐姐13 小时前
vue3项目开发总结
前端·vue.js·git
{⌐■_■}19 小时前
【git】工作流实战:从本地仓库到远程仓库,git pull 与git rebase使用讲解,案例解析
git
大溪地C1 天前
Git 合并冲突解决与状态分析笔记
笔记·git
CsbLanca1 天前
Git配置个人和公司的提交信息,通过‘目录配置‘
git
娶个名字趴1 天前
Git企业开发
git
fruge1 天前
git上传 项目 把node_modules也上传至仓库了,在文件.gitignore 中忽略node_modules 依然不行
大数据·git·elasticsearch
_OMG_1 天前
Git 高效同步远程分支与本地分支清理技巧
git