Git 入门超简单指南

ops/2024/11/28 16:36:50/

1. 什么是 Git?

Git 是一个分布式版本控制系统,由 Linus Torvalds 于 2005 年创建。它的主要目的是帮助开发者有效地管理和跟踪项目的历史版本。通过使用 Git,你可以轻松地记录每一次代码的修改,回滚到以前的版本,以及与其他人协作开发项目。

  • 官方文档:Git 官方文档
  • 教程:Pro Git 书 是一本非常好的免费书籍,适合初学者和进阶用户。

2. 配置 Git

首次使用 Git 之前,需要配置用户信息,这样每次提交时 Git 都会知道是谁提交的。

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
  • --global 表示这是全局配置,适用于所有 Git 仓库。如果你想为某个特定的仓库配置用户信息,可以在该仓库目录下使用相同的命令,去掉 --global 参数。

3. 创建 Git 仓库

3.1 初始化新仓库

  1. 在项目根目录下打开终端。

  2. 执行以下命令初始化一个新的 Git 仓库:

git init

这会在当前目录下创建一个名为 .git 的隐藏目录,里面存储了 Git 仓库的所有信息。

3.2 克隆现有仓库

  1. 如果你要从远程仓库克隆项目,可以使用以下命令:
git clone <repository-url>

例如:

git clone https://github.com/username/repository.git

这会将远程仓库克隆到本地当前目录下的一个子目录中,子目录的名称默认为远程仓库的名称。

4. 基本 Git 流程

4.1 添加文件到暂存区

git add <file>

如果要添加所有修改过的文件,可以使用:

git add .

4.2 提交更改

git commit -m "提交信息"

提交信息应该简洁明了,描述本次提交的主要内容。例如:

git commit -m "修复登录界面的输入框问题"

4.3 推送更改

git push origin main

注意:origin 是远程仓库的默认名称,main 是主分支的名称。如果你的远程仓库使用的是 master 分支,可以将 main 替换为 master

5. 查看仓库状态

5.1 查看当前状态

使用 git status 查看当前仓库的状态,包括哪些文件已被跟踪,哪些文件未被跟踪。

git status

输出示例:

On branch main
Your branch is up to date with 'origin/main'.Untracked files:
(use "git add <file>..." to include in what will be committed)
newfile.txtnothing added to commit but untracked files present (use "git add" to track)

5.2 查看提交历史

使用 git log 查看提交历史。

git log

为了更简洁地查看历史,可以使用:

git log --oneline

输出示例:

1a2b3c4 Fix login input issue
5f6g7h8 Add new feature
9i0j1k2 Initial commit

6. 分支管理

6.1 创建分支

创建一个新分支。

git branch <branch-name>

例如:

git branch feature-login

6.2 切换分支

切换到另一个分支。

git checkout <branch-name>

例如:

git checkout feature-login

也可以一步完成创建和切换:

git checkout -b <branch-name>

例如:

git checkout -b bugfix-login

6.3 合并分支

将一个分支的更改合并到当前分支。

git merge <branch-name>

例如:

git merge feature-login

如果合并过程中出现冲突,Git 会标记出冲突的部分。你需要手动编辑文件,解决冲突后,再继续提交:

git add <conflicted-file>
git commit -m "解决冲突"

6.4 删除分支

删除一个已经合并的分支。

git branch -d <branch-name>

例如:

git branch -d feature-login

7. 撤销更改

7.1 撤销工作区的更改

恢复工作区的文件到最近一次提交的状态。

git checkout -- <file>

例如:

git checkout -- index.html

7.2 撤销暂存区的更改

将已添加到暂存区的文件移出暂存区。

git reset <file>

例如:

git reset index.html

7.3 撤销提交

撤销最近一次提交,但保留工作区和暂存区的更改。

git reset --soft HEAD~1

如果要完全撤销最近一次提交,包括工作区和暂存区的更改:

git reset --hard HEAD~1

8. 获取远程仓库的最新更改

8.1 拉取最新更改

从远程仓库获取最新的更改并合并到当前分支。

git pull

如果你想从特定的远程仓库和分支拉取更改,可以使用:

git pull <remote> <branch>

例如:

git pull origin main

9. 常用命令总结

  • git init:初始化一个新的 Git 仓库。
  • git clone <repository-url>:克隆一个远程仓库。
  • git add <file> 或 git add .:将文件添加到暂存区。
  • git commit -m "提交信息":提交暂存区的文件。
  • git push origin <branch-name>:将本地分支的更改推送到远程仓库。
  • git status:查看当前仓库的状态。
  • git log 或 git log --oneline:查看提交历史。
  • git branch <branch-name>:创建新分支。
  • git checkout <branch-name>:切换到指定分支。
  • git merge <branch-name>:合并分支。
  • git pull:从远程仓库拉取最新更改。
  • git reset --soft HEAD~1:撤销最近一次提交,但保留工作区和暂存区的更改。
  • git reset --hard HEAD~1:完全撤销最近一次提交。

希望这篇笔记能够让你快速上手git,让你在控制版本的路上越走越远~


http://www.ppmy.cn/ops/137405.html

相关文章

javaweb-day02-JS(javascript)

1.JavaScript引入 &#xff08;1&#xff09;引入方式 2.JS语法 2.1 书写语法 2.2 变量 &#xff08;1&#xff09;var关键字定义的是全局变量&#xff1b; &#xff08;2&#xff09;可以重复声明&#xff1b; 2.3 数据类型&运算符 &#xff08;1&#xff09;数据类型…

钉钉授权登录

一.找开钉钉开发平台【钉钉开放平台 (dingtalk.com)】 二。点击菜单【应用开发】->左边【钉钉应用】->【创建应用】 三。创建应用-》保存成功后&#xff0c;点击自己【新建的应用】&#xff0c;进入详细页面 四。进入应用详细页面。左边【分享设置】 注意&#xff1a;进…

七牛云AIGC内容安全方案助力企业合规创新

随着人工智能生成内容(AIGC)技术的飞速发展,内容审核的难度也随之急剧上升。在传统审核场景中,涉及色情、政治、恐怖主义等内容的标准相对清晰明确,但在AIGC的应用场景中,这些界限变得模糊且难以界定。用户可能通过交互性引导AI生成违规内容,为审核工作带来了前所未有的不可预测…

VUE练习

使用new Vue()创建Vue实例&#xff0c;传入配置对象&#xff08;el data&#xff09; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial…

11.27作业

C语言关键概念 ├── static │ ├── 局部变量 │ │ └── 生命周期持续整个程序运行 │ └── 全局变量和函数 │ └── 仅在定义文件中可见 ├── extern │ └── 引入其他文件中的全局变量 ├── typedef │ ├── 类型重命名 │ │ ├─…

java——Tomcat连接池配置NIO、BIO、APR

Tomcat连接池的配置涉及不同的IO模型&#xff0c;包括NIO&#xff08;Non-blocking IO&#xff0c;非阻塞IO&#xff09;、APR&#xff08;Apache Portable Runtime&#xff0c;Apache可移植运行库&#xff09;和BIO&#xff08;Blocking IO&#xff0c;阻塞IO&#xff09;。以…

深入浅出摸透AIGC文生图产品SD(Stable Diffusion)

hihi,朋友们,时隔半年(24年11月),终于能腾出时间唠一唠SD了🤣,真怕再不唠一唠,就轮不到SD了,技术更新换代是在是太快! 朋友们,最近(24年2月)是真的没时间整理笔记,每天都在疯狂的学习Stable Diffusion和WebUI & ComfyUI,工作实在有点忙,实践期间在飞书上…

kafka进阶_3.消费消息

文章目录 一、消费消息概览1.1、消费示例代码1.2、消费过程 二、消费者组2.1、push & pull2.2、消费者组 三、调度器Coordinator四、消费者分配策略4.1、引言4.2、分配基本流程4.3、分配策略4.3.1、轮询分配策略4.3.2、轮询分配策略 五、消费偏移量5.1、起始偏移量5.2、指定…