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"

文件转换流程:

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

相关推荐
Franklin8 小时前
VS 版本更新git安全保护问题的解决
git
我是一只代码狗12 小时前
idea中合并git分支
git
我是一只代码狗12 小时前
idea中使用git
git·gitee·github
恋喵大鲤鱼12 小时前
git restore
git·git restore
李少兄13 小时前
Git Commit Message写错后如何修改?已Push的提交如何安全修复?
git·安全
Fireworkitte13 小时前
git stash
git
pe7er1 天前
git submodule简易指南
git
xiaocainiao8811 天前
Python 实战:构建 Git 自动化助手
git·python·自动化
Casia_Dominic2 天前
【三维重建工具】NeRFStudio、3D GaussianSplatting、Colmap安装与使用指南
git·3d·github·点云