首页 > 其他分享 >Git入门

Git入门

时间:2024-07-20 20:52:20浏览次数:14  
标签:git 入门 仓库 暂存区 -- Git 提交 分支

初始化配置

配置用户名

git config --global user.name "Your Name"

配置邮箱

git config --global user.email "[email protected]"

存储配置(存储用户名邮箱)

git config --global credential.helper store

创建仓库

创建一个新的本地仓库 (省略 project-name 则在当前目录创建)

git init <project-name>

克隆一个远程仓库

git clone <url>

四个区域

区域 功能
工作区 在电脑里实际能看到的目录,也就是仓库的所在地
暂存区 暂存区也叫索引,用来临时存放未提交的内容,一般在 .git 目录下的 index 中
本地仓库 Git 在本地的版本库,仓库信息存储在 .git 这个隐藏目录中
远程仓库 托管在远程服务器上的仓库,如 GitHub

文件状态

状态 描述
已修改 修改了但是没有保存到暂存区的文件
已暂存 修改后已经保存到暂存区的文件
已提交 把暂存区的文件提交到本地仓库后的状态

几个参数

参数 描述
main/master 默认主分支
orgin 默认远程仓库
HEAD 指向当前分支的指针,当前版本
HEAD^ 上一个版本
HEAD~ 上四个版本
HEAD~2 上两个版本

特殊文件

文件名 描述
.git Git 仓库的元数据和对象数据库
.gitignore 忽略文件,不需要提交到仓库的文件
.gitattributes 指向当前分支的指针
.gitkeep 使空目录被提交到仓库
.gitmodules 记录子模块的信息
.gitconfig 记录仓库的配置信息

添加和提交

添加一个文件到暂存区, 比如 git add . 就表示添加所有文件到暂存区

git add <file>

提交所有暂存区的文件到本地仓库

git commit -m "message"

提交所有已修改的文件到本地仓库

git commit -am "message"

撤销和恢复

移动一个文件到新的位置

git mv <file> <new-file>

从工作区和暂存区删除一个文件

git rm <file>
或者
rm <file>   删除工作区,暂存区没删除
git add <file>  提交工作区的内容,相当于从暂存区是删除 <file>

从索引/暂存区中删除文件, 但是本地工作区文件还在, 只是不希望这个文件被版本控制

git rm --cached <file>

恢复一个文件到之前的版本

git checkout <file> <commit-id>

创建一个新的提交, 用来撤销指定的提交, 后者的所有变化将被前者抵消, 并且应用到 当前分支

git revert <commit-id>

重置当前分支的 HEAD 为之前的某个提交, 并且删除所有之后的提交

  • --hard 参数表示重置工作区和暂存区
  • --soft 参数表示重置暂存区
  • --mixed 参数表示重置工作区
git reset --mixed <commit-id>

撤销暂存区的文件, 重新放回工作区 (git add 的反向操作)

git restore --staged <file>

查看状态或差异

查看仓库状态, 列出还未提交的新的或修改的文件

git status

查看提交历史, --oneline 表示简介模式

git log --oneline

查看未暂存的文件更新了哪些部分

git diff

查看两个提交之间的差异

git diff <commit-id> <commit-id>

查看工作区和版本库之间的差异

git diff HEAD

查看暂存区和版本库之间的差异

git diff --cached

远程仓库

添加远程仓库

git remote add <remote-name> <remote-url>

查看远程仓库

git remote -v

删除远程仓库

git remote rm <remote-name>

重命名远程仓库

git remote rename <old-name> <new-name>

从远程仓库拉取代码。 默认拉取远程仓库名 origin 的 master 或者 main 分支

git pull <remote-name> <branch-name>

将本地改动的代码 rebase 到远程仓库的最新代码上 (为了有一个干净、 线性的提交历 史)

git pull --rebase

推送代码到远程仓库 (然后再发起 pull request)

git push <remote-name> <branch-name>

获取所有远程分支

git fetch <remote-name>

查看远程分支

git branch -r

Fetch 某一个特定的远程分支

git fetch <remote-name> <branch-name>

分支

查看所有本地分支, 当前分支前面会有一个星号*, -r 查看远程分支, -a 查看所有分支

git branch

创建一个新的分支

git branch <branch-name>

切换到指定分区,并更新工作区

git checkout -b <branch-name>

删除一个已经合并的分支

git branch -d <branch-name>

删除一个分支,不管是否合并

git branch -D <branch-name>

给当前的提交打上标签, 通常用于版本发布

git tag <branch-name>

合并分支, --no-ff 参数表示禁用 FastForward 模式, 合并后的历史有分支, 能看出曾经做过合并, 而 -ff 参数表示使用 FastForward 模式, 合并后的历史会变成一条直线

git merge --no-ff -m message <branch-name>

合并&挤压 (squash) 所有提交到一个提交

git squash <branch-name>

rebase 操作可以把本地未 push 的分叉提交历史整理成直线, 看起来更加直观。 但是, 如果多人协作时, 不要对已经推送到远程的分支执行 rebase 操作。 rebase 不会产生新的提交, 而是把当前分支的每一个提交都 “复制”到目标分支上, 然后再把当前分支指向目标分支, 而 merge 会产生一个 新的提交, 这个提交有两个分支的所有修改

git rebase <main>

标签:git,入门,仓库,暂存区,--,Git,提交,分支
From: https://www.cnblogs.com/xingzhuz/p/18313769

相关文章

  • 如何在 github 操作中排除对主分支文件夹的检查黑色格式化程序?
    我学习Python,我想使用GitHub操作,但我对BlackFormatter有疑问,因为它检查拉请求中的所有文件(也来自主分支),但我不需要它。我已尝试使用命令包含/排除搜索的任何选项,但都不起作用。我的问题是什么?我在.yml中使用此代码:-uses:actions/checkout@v3-u......
  • 万字长文|LLM大模型基础入门(非常详细)从入门到精通系列之:(三)Transformer 架构
    引言在本文中,我们将介绍并解释基于Transformer的大语言模型的每个步骤。当第一次接触Transformer架构时,我被可用于理解它的大量概念和教程所淹没。一些视频或文章假设了自然语言处理(NLP)概念的先验知识,而另一些则太长且难以理解。为了掌握Transformer架构,我不得不阅......
  • 入局大模型!(非常详细)从入门到精通,值得开发者好好看一看的 AI 入门法!(内附教程)
    今年招聘市场确实是好点了,我发现群友都在讨论,得赶快学点AI大模型。他们有的是想正式转到一些新兴的AI行业,需要系统的学习训练。更多的是想跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。这也可以理解,ChatGPT推出仅一年半的时间,就将生成式AI推......
  • OpenAI入门指南 aidoczh.com 上线OpenAI Cookbook中文版
    文章目录1、网址地址(1)中文地址(2)官网地址2、OpenAICookbook介绍3、内容导航1、网址地址(1)中文地址openai-cookbook中文网址http://www.aidoczh.com/docs/openai_cookbook/openai-cookbook中文项目已经放在github上https://github.com/aidoczh/openai-cookbook-z......
  • Pandas-入门
    PandasPandas1.1Series1.1.1常用属性1.1.2常用方法2.1DataFrame2.1.1基础属性基本函数2.1.2索引相关操作2.1.3修改行名和列索引值2.1.4添加列2.1.5删除列3.1导入导出数据Pandas"""PandasDataFrame:可以把DataFrame看作由Series对象组成的字......
  • github如何实现和gitlab的同步
    要实现GitHub和GitLab之间的同步,你可以使用以下几种方法。这里介绍两种常用的方法:使用GitLabCI/CD和使用镜像仓库。方法1:使用GitLabCI/CD通过GitLabCI/CD,可以在每次推送到GitLab时自动同步到GitHub。以下是具体步骤:步骤1:在GitHub上创建一个空仓库在Git......
  • kettle从入门到精通 第七十九课 ETL之kettle kettle读取数据库BLOB字段转换为文件
     上一课我们讲解了如何将文件以二进制流的方式写入数据库,本节课我们一起学习下如何将二进制数据读取为文件。 1、将二进制流转换为文件这里主要用到了步骤【文本文件输出】。表输入步骤从表中读取blob字段,java代码定义二进制流转换为文件的全路径,文本文件输出步骤根据全路径和......
  • kettle从入门到精通 第七十八课 ETL之kettle kettle将文件写入数据库BLOB字段
    前些日子一个小伙伴私聊我咨询如何将数据库中的BLOB字段读取为文件。帮他顺利读取文件之后我在想kettle肯定支持将文件写入数据库BLOB字段。今天先来一起学习下如何将文件以二进制流的方式写进数据库。 1、创建数据表,脚本如下:CREATETABLE`file`(`id`bigintNOTNULLA......
  • Tool-Gitlab-CICD-jobs-删除或清空
    Tool-Gitlab-CICD-jobs-删除或清空清空GitLab项目中所有的CI/CDJobs列表或者说是清除Pipeline的历史记录,可以通过GitLab的Web界面或者API来实现。注意:会删除Pipeline的记录和相关联的Job日志、Artifacts等信息,操作前请确保已经做好相应数据的备份。通过Web界面清空登录到Git......
  • Tool-Gitlab-Issue-template
    Tool-Gitlab-Issue-template创建一个高效的Bug报告Issue模板。.gitlab/issue_templates/bug.md以下是一个推荐的GitLabBugReportIssue模板示例。可以根据项目的具体需求调整这个模板:---title:"[BUG]简短描述问题"labels:bugassignees:---###描述请详细描述......