git常用命令

一、Git 是什么?

简单来说,Git 是一个分布式版本控制系统。

可以把它理解成一个超级强大的“时光机”和“协作工具”。

  • 版本控制:它能记录你对文件(通常是代码)的所有修改历史。你可以回溯到任何一个历史版本,看看某一天谁修改了哪行代码,并且可以轻松地比较不同版本之间的差异。

  • 分布式:每个参与项目的开发者电脑上都有一个完整的代码仓库副本(包括全部历史记录)。这样即使中央服务器宕机了,你也可以在本地继续工作,之后再同步。

核心概念:

  • 仓库(Repository):一个被 Git 管理的文件夹,里面包含了你的项目文件以及 Git 的版本历史记录。可以是本地的,也可以是远程的(如 GitHub, Gitee)。

  • 工作区(Working Directory):你电脑上能看到的项目目录,你在这里编辑文件。

  • 暂存区(Staging Area):一个中间区域。你可以选择将工作区的哪些修改(新增、更改、删除)放到这里,准备下一次提交。它就像是一个“购物车”。

  • 提交(Commit):将暂存区的内容作为一个新的版本快照,永久地保存到 Git 仓库的历史记录中。每次提交都需要一个说明信息(commit message)。


二、常用 Git 命令

这里按照操作流程来分类介绍最核心的命令。

1. 初始化和克隆
  • git init

    • 作用:在当前目录创建一个新的 Git 仓库。

    • 场景:开始一个全新的本地项目。

  • git clone <url>

    • 作用:从远程仓库(如 GitHub)下载一个完整的项目副本到本地。

    • 场景:获取一个已存在的项目。

    • 例子git clone git仓库地址

2. 查看状态和差异
  • git status

    • 作用:查看工作区和暂存区的当前状态。它会告诉你哪些文件被修改了,哪些文件已经暂存了,哪些文件未被跟踪。

    • 这是你最常用的命令之一!

  • git diff

    • 作用:查看工作区与暂存区文件的差异(具体修改了什么内容)。

  • git diff --staged

    • 作用:查看暂存区与上一次提交的差异。

3. 跟踪和提交更改
  • git add <file>

    • 作用:将文件的修改添加到暂存区。

    • 例子

      • git add main.py (添加单个文件)

      • git add . (添加所有变化的文件,包括新增、修改和删除,但不包括未被跟踪的新文件)

      • git add -A (添加所有变化的文件,功能更全面)

  • git commit -m "commit message"

    • 作用:将暂存区的内容提交到仓库历史中。-m 后面跟的是本次提交的说明,必须清晰易懂

    • 例子git commit -m "修复了用户登录的bug"

4. 查看历史记录
  • git log

    • 作用:查看提交历史。

    • 常用选项

      • git log --oneline (以一行的简洁方式显示)

      • git log --graph (以图形方式显示分支合并历史)

5. 分支管理

分支是 Git 的“杀手级”功能,让你能在不同的线上并行开发。

  • git branch

    • 作用:列出所有本地分支。当前分支前面会有一个 * 号。

  • git branch <branch-name>

    • 作用:创建一个新分支。

    • 例子git branch new-feature

  • git checkout <branch-name>

    • 作用:切换到指定分支。

    • 例子git checkout new-feature

  • git checkout -b <branch-name>

    • 作用:创建并立即切换到新分支(上面两条命令的合并)。

    • 例子git checkout -b new-feature

  • git merge <branch-name>

    • 作用:将指定分支合并到当前分支

    • 例子:你在 main 分支上,执行 git merge new-feature,就会把 new-feature 的修改合并到 main

  • git branch -d <branch-name>

    • 作用:删除一个已合并的分支。

6. 与远程仓库交互
  • git remote add origin <url>

    • 作用:将本地仓库与一个远程仓库关联起来。

    • 例子git remote add origin git仓库地址

  • git push -u origin <branch-name>

    • 作用:将本地分支的提交推送到远程仓库。-u 参数在第一次推送时使用,它会建立本地分支与远程分支的关联,之后可以直接用 git push

    • 例子git push -u origin main

  • git pull

    • 作用:从远程仓库获取更新并合并到当前分支(相当于 git fetch + git merge)。

  • git fetch

    • 作用:仅从远程仓库下载最新的变更,但不会自动合并到你的工作区。


三、怎么操作:一个典型的工作流程

假设你要参与一个在 GitHub 上的项目。

场景:为项目添加一个新功能

  1. 获取项目

    bash

    git clone git仓库地址
    cd project
  2. 创建功能分支(永远不要在主分支 main 上直接开发新功能)

    bash

    git checkout -b my-new-feature
  3. 开始开发

    • 在本地编辑代码,修改文件。

  4. 提交更改

    bash

    # 查看哪些文件被修改了
    git status
    
    # 查看具体修改了哪些代码(可选,但推荐)
    git diff
    
    # 将所有修改添加到暂存区
    git add .
    
    # 提交到本地仓库
    git commit -m "实现了XXX新功能"

    (第4步可能会重复多次,完成一个小的功能点就提交一次)

  5. 推送到远程仓库

    bash

    # 将你的功能分支推送到 GitHub
    git push -u origin my-new-feature
  6. 发起 Pull Request (PR) / Merge Request (MR)

    • 在 GitHub/GitLab 等网站上,对你的分支发起一个 PR,请求项目管理员将你的代码合并到主分支。

  7. 代码评审和合并

    • 管理员会审查你的代码,提出意见。你可能会需要根据意见修改代码,然后再次 addcommitpush

    • 审查通过后,管理员会在网站上点击合并按钮。

  8. 更新本地主分支

    • 功能合并后,你可以切换回主分支并拉取最新的代码。

    bash

    # 切换回主分支
    git checkout main
    
    # 拉取远程最新的更新(包括你刚被合并的代码)
    git pull
    
    # 可以删除本地已经合并的功能分支
    git branch -d my-new-feature

总结

操作常用命令
开始git clonegit init
日常状态git statusgit diff
保存进度git addgit commit
查看历史git log
并行开发git branchgit checkoutgit merge
团队协作git pushgit pull

最佳实践建议:

  • 提交信息要清晰:用一句话说明这次提交做了什么。

  • 频繁提交:每个提交只做一件小事,便于回溯和定位问题。

  • 多用分支:任何新功能或 Bug 修复都应在独立分支上进行。

  • 推送到远程前先拉取:在 git push 之前,先 git pull 一下,确保本地代码是最新的,避免冲突。

希望这个指南能帮助你快速上手 Git!多加练习,你就会越来越熟练。

<think>我们被要求生成一个关于Git常用命令的汇总列表。根据用户的要求,我们需要提供结构清晰的回答,并尽量保证真实可靠。同时,我们参考了站内引用中提供的Git命令信息。根据引用内容,我们可以整理出以下常用命令:1.基本操作(初始化、添加、提交等)2.分支管理3.远程仓库操作4.标签管理5.历史查看与撤销6.其他实用命令(如删除大文件、清理仓库等)我们将按照这些类别来组织命令。注意:由于引用中提供了一些特定问题的解决方案(如删除大文件),我们也会将其作为实用命令的一部分。另外,注意用户要求使用中文回答,并且行内数学表达式使用$...$格式(但本问题不涉及数学表达式,所以忽略),独立公式使用$$...$$格式(同样不涉及)。同时,在回答末尾生成相关问题。我们开始整理Git常用命令汇总:</think>### Git常用命令汇总 以下是Git常用命令分类整理,帮助您高效管理代码版本: #### 1. 仓库初始化与基础操作 ```bash # 初始化新仓库 $ git init # 克隆远程仓库 $ git clone <远程仓库URL> # 查看当前状态 $ git status # 添加文件到暂存区 $ git add <文件名> # 添加单个文件 $ git add . # 添加所有修改 # 提交更改 $ git commit -m "提交说明" ``` #### 2. 分支管理 ```bash # 创建分支 $ git branch <新分支名> # 切换分支 $ git checkout <分支名> $ git switch <分支名> # Git 2.23+推荐方式 # 创建并切换分支 $ git checkout -b <新分支名> $ git switch -c <新分支名> # 合并分支 $ git merge <要合并的分支名> # 删除分支 $ git branch -d <分支名> # 安全删除 $ git branch -D <分支名> # 强制删除未合并分支 ``` #### 3. 远程仓库操作 ```bash # 添加远程仓库 $ git remote add origin <远程仓库URL> # 查看远程仓库 $ git remote -v # 推送到远程仓库 $ git push -u origin <分支名> # 首次推送 $ git push # 后续推送 # 拉取远程更新 $ git pull origin <分支名> $ git pull --rebase origin <分支名> # 变基式拉取 # 删除远程连接 $ git remote rm origin ``` #### 4. 版本回退与撤销 ```bash # 查看提交历史 $ git log $ git log --oneline # 简洁版日志 # 撤销工作区修改 $ git checkout -- <文件名> # 撤销暂存区文件 $ git reset HEAD <文件名> # 版本回退 $ git reset --hard <commit_id> # 彻底回退 $ git reset --soft <commit_id> # 保留修改 # 恢复删除的文件 $ git restore <文件名> # Git 2.23+ ``` #### 5. 标签管理 ```bash # 查看标签 $ git tag # 创建标签 $ git tag <标签名> # 轻量标签 $ git tag -a v1.0 -m "版本说明" # 附注标签 # 推送标签 $ git push origin <标签名> # 删除标签 $ git tag -d <标签名> # 本地删除 $ git push origin :refs/tags/<标签名> # 远程删除 ``` #### 6. 高级维护 ```bash # 清理历史大文件 $ git filter-branch --force --index-filter \ 'git rm -rf --cached --ignore-unmatch <文件名>' \ --prune-empty --tag-name-filter cat -- --all # 回收存储空间 $ git reflog expire --expire=now --all $ git gc --prune=now # 查看仓库大小 $ git count-objects -vH ``` #### 7. 配置相关 ```bash # 设置用户名/邮箱 $ git config --global user.name "用户名" $ git config --global user.email "邮箱" # 查看配置 $ git config --list # 设置默认编辑器 $ git config --global core.editor vim ``` > **最佳实践提示**: > 1. 频繁提交小变更,保持提交记录清晰 > 2. 使用`.gitignore`文件排除无需版本控制的文件 > 3. 重要分支(如main/prod)设置保护规则 > 4. 推送前先执行`git pull --rebase`避免合并提交
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值