【Git入门】Git常用命令大全:从add到push,一图胜千言

简介: 本文深入浅出地讲解Git核心概念与常用命令,涵盖工作区、暂存区、本地仓库和远程仓库三大区域,梳理从配置、克隆、提交到同步的完整流程,并介绍撤销修改、查看历史、.gitignore等实用技巧,助力开发者高效协作。

前言

在多人协作开发中,Git 是当之无愧的“版本控制之王”。

不管你是写 Java、Python 还是 Go,入职第一件事通常就是:“把代码 Clone 下来,配好环境。”

很多新手对 Git 的理解停留在“背命令”的阶段,一旦遇到报错就手足无措。其实,Git 的核心在于理解它的三个工作区域。搞懂了这个,命令自然就记住了。

  • 工作区 (Workspace): 就是你电脑里能看到的目录,你在里面写代码。
  • 暂存区 (Stage/Index): 一个临时存放改动的地方(git add 后去的地方)。
  • 本地仓库 (Repository): 安全存放所有版本数据的地方(git commit 后去的地方)。
  • 远程仓库 (Remote): 托管代码的服务器,如 GitHub、GitLab(git push 后去的地方)。

今天我们就按照代码流转的顺序,梳理一遍最核心的 Git 命令。

1. 起步:配置与获取

在一切开始之前,你得先告诉 Git 你是谁。

Bash

# 设置用户名和邮箱(全局配置,一次即可)
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
# 查看当前配置
git config --list

获取代码仓库有两种方式:

Bash

# 方式A:从远程克隆一个现有的项目(最常用)
git clone https://github.com/username/project.git
# 方式B:在本地初始化一个新的空仓库
mkdir my-project
cd my-project
git init

2. 日常循环:写代码 -> 提交

这是你每天重复次数最多的动作。

A. 查看状态 (最重要的命令)

不知道自己改了啥?不知道有没有漏提交?没事多敲敲它。

Bash

git status

B. 添加到暂存区 (add)

把工作区的修改,“快照”一份放到暂存区。

Bash

# 添加指定文件
git add README.md
# 添加当前目录下的所有文件(最常用)
git add .

C. 提交到本地仓库 (commit)

把暂存区的内容,正式生成一个版本。

Bash

# -m 后面跟的是提交信息,一定要写清楚改了什么!
git commit -m "fix: 修复了登录页面的bug"

D. 后悔药:撤销修改

  • 场景1:改乱了,想丢弃工作区的修改(回到上一次 commit 的状态)
    Bash
git checkout -- filename
# 或者新版命令
git restore filename
  • 场景2:add 多了,想把它从暂存区拿出来(变回红色的未 staged 状态)
    Bash
git reset HEAD filename

3. 同步:与世界接轨

代码写好了,得传到服务器上给同事看。

A. 推送到远程 (push)

Bash

# 将本地的 master 分支推送到 origin 主机的 master 分支
git push origin master
# 如果已经关联过,直接简写
git push

B. 拉取远程更新 (pull)

每天早上开工前,第一件事应该是拉取同事的代码,防止冲突。

Bash

# 拉取并自动合并
git pull
# 等价于下面两步操作:
# git fetch (下载更新) + git merge (合并)

4. 查看历史:考古挖掘

想看看过去发生了什么?

Bash

# 查看提交日志
git log
# 查看简洁版日志(一行一条,很清晰)
git log --oneline
# 查看图形化分支历史
git log --graph --oneline --all

5. 进阶技巧:.gitignore

有些文件是不应该提交到 Git 里的,比如:

  • Java 的 .class 文件、target/ 目录。
  • Python 的 __pycache__/
  • IDE 的配置文件 .idea/.vscode/
  • 包含密码的配置文件。

你需要项目根目录下创建一个名为 .gitignore 的文件:

Plaintext

# 忽略 target 目录下的所有文件
target/
# 忽略所有 .log 结尾的文件
*.log
# 忽略 IDE 配置
.idea/

总结:常用命令速查

动作 命令 解释
开始 git clone <url> 复制远程仓库
查状态 git status 现在的仓库处于什么情况
暂存 git add . 把修改加入清单
提交 git commit -m "msg" 把清单封存成版本
上传 git push 发送给服务器
下载 git pull 从服务器获取最新版
看日志 git log --oneline 查看历史记录

掌握这 7 个命令,你已经可以应对 90% 的日常开发工作了。

相关文章
|
JavaScript
Vue中 使用 moment.js 计算时间差值
Vue中 使用 moment.js 计算时间差值
1334 0
Vue中 使用 moment.js 计算时间差值
|
7月前
|
网络协议 算法 Java
基于Reactor模型的高性能网络库之Tcpserver组件-上层调度器
TcpServer 是一个用于管理 TCP 连接的类,包含成员变量如事件循环(EventLoop)、连接池(ConnectionMap)和回调函数等。其主要功能包括监听新连接、设置线程池、启动服务器及处理连接事件。通过 Acceptor 接收新连接,并使用轮询算法将连接分配给子事件循环(subloop)进行读写操作。调用链从 start() 开始,经由线程池启动和 Acceptor 监听,最终由 TcpConnection 管理具体连接的事件处理。
257 2
|
21天前
|
人工智能 物联网 Shell
大模型微调完全攻略:不用写代码,让你的AI学会“说人话”
大模型虽强大,却缺乏个性。微调如同“二次教育”,让AI学会你的语言、风格与业务。通过LoRA/QLoRA技术,仅需少量数据和消费级显卡,即可快速打造专属智能助手。从环境搭建到训练测试,全流程低门槛操作,助力人人拥有“私人AI”。
125 5
|
5月前
|
安全 PHP 开发工具
Web渗透信息收集进阶
网站敏感目录与文件指易被恶意扫描利用的路径,如后台管理、.git、.svn等,可能导致源码泄露或权限入侵。常用工具如御剑、Dirbuster、Dirsearch可探测此类信息,需加强安全防护。
745 58
Web渗透信息收集进阶
|
存储 开发工具 git
|
Java 数据库连接 数据库
Spring Boot与MyBatis的集成应用
Spring Boot与MyBatis的集成应用
|
数据库
sqlmap过滤连续空格的方法(一)
sqlmap过滤连续空格的方法(一)
|
JavaScript 前端开发
JS中document.querySelector什么意思
JS中document.querySelector什么意思
375 0
|
SQL 开发框架 .NET
攻防世界---web---supersqli
攻防世界---web---supersqli