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"

文件转换流程:

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

相关推荐
檀越剑指大厂15 分钟前
【Git系列】解析与解决Git错误:RPC失败;curl 56 OpenSSL SSL_read: error:140943FC
git·rpc·ssl
誓约酱2 小时前
git的基本使用
linux·运维·服务器·c++·git·后端
计算机学无涯2 小时前
Git指令
git
lyrieek3 小时前
Angular CLI导致git bash(git for windows)启动速度极其缓慢
git·性能优化
wellnw5 小时前
[git]ubuntu git 开启Verbose Mode模式
git
不烦下雨c5 小时前
【Git原理和使用】Git 分支管理(创建、切换、合并、删除、bug分支)
git
sleP4o5 小时前
Git的学习和常见问题
git·学习·elasticsearch
xianwu5436 小时前
反向代理模块开发,
linux·开发语言·网络·c++·git
慕迟8 小时前
IDEA的Git界面(ALT+9)log选项不显示问题小记
git·intellij-idea
喵喵酱仔__8 小时前
git 本地操作
git