超值干货!27 个 git 命令,99% 的时间都用得上,收藏必备!

〇、前言

在软件开发的世界里,Git 是一款广泛使用的分布式版本控制系统。它的众多命令犹如工具包中的各式工具,帮助开发者高效管理代码版本、协作开发。本文将详细介绍 Git 中常用命令,让你能更好地驾驭 Git。

一、仓库初始化与克隆

  1. git init
    • 作用:在本地创建一个新的空Git仓库。这个命令会在当前目录下创建一个.git隐藏文件夹,用于存储仓库的元数据(如版本历史、分支信息等)。
    • 示例:如果要在一个新的项目目录下创建Git仓库,可以进入该目录后执行git init
  2. git clone [repository - url]
    • 作用:从远程Git仓库(如GitHub、GitLab等)克隆一个副本到本地。它会自动下载仓库中的所有文件、版本历史等信息。
    • 示例:要克隆一个名为my - project的GitHub仓库,可以执行git clone git@gitee.com:zhongxianyao/test-go.git

二、文件状态与暂存

  1. git status

    • 作用:查看工作区(当前目录下的文件)的状态。它会显示哪些文件被修改了、哪些文件是新添加的、哪些文件已经被暂存等信息。
    • 示例:执行git status,如果看到modified: file.txt,表示file.txt文件被修改了。
  2. git add [file - name(s)]

    • 作用:将工作区中的文件添加到暂存区。暂存区是一个过渡区域,用于准备要提交的文件。可以逐个添加文件,也可以使用通配符添加多个文件。
    • 示例:如果要将file.txt添加到暂存区,可以执行git add file.txt;如果要添加当前目录下所有修改和新添加的文件,可以执行git add .;添加所有的文件可以用git add --all
  3. git stash list

    • 作用
      • 查看已经保存的stash列表。每次执行git stash都会创建一个新的stash记录,git stash list可以显示这些记录的详细信息,包括stash@{0}stash@{1}等,其中stash@{0}表示最近一次保存的stash
    • 示例
      • 执行git stash list可能会看到类似这样的结果:
      stash@{0}: WIP on feature - branch: 1234567 some commit message
      stash@{1}: WIP on another - branch: 7654321 another commit message
      
  4. git stash apply [stash@{n}]

    • 作用
      • 将指定的stash记录应用到当前工作区。如果不指定stash@{n},则默认应用最近一次保存的stashstash@{0})。应用stash后,stash记录仍然存在于stash列表中。
    • 示例
      • 如果你之前保存了一个stash,现在想要恢复到工作区,可以执行git stash apply。如果要恢复特定的stash,例如stash@{1},则执行git stash apply stash@{1}
  5. git stash pop [stash@{n}]

    • 作用
      • git stash apply类似,将指定的stash记录应用到当前工作区,但与apply不同的是,pop操作在应用stash后会从stash列表中删除该stash记录。如果不指定stash@{n},则默认弹出最近一次保存的stashstash@{0})。
    • 示例
      • 要恢复最近一次保存的stash并从stash列表中删除它,可以执行git stash pop。如果是stash@{2},则执行git stash pop stash@{2}
  6. git stash drop [stash@{n}]

    • 作用
      • 直接删除指定的stash记录。如果不指定stash@{n},则默认删除最近一次保存的stashstash@{0})。
    • 示例
      • 如果你确定不再需要某个stash记录,例如stash@{3},可以执行git stash drop stash@{3}来删除它。
  7. git stash clear

    • 作用
      • 清空整个stash列表,删除所有保存的stash记录。
    • 示例
      • 执行git stash clear将删除所有之前保存的stash记录,使用时需要谨慎,因为一旦执行无法恢复。
  8. git stash save “message”

    • 作用
      • 在保存stash时添加一条自定义的消息,以便在查看stash列表时能更清楚地知道每个stash保存的内容。
    • 示例
      • 执行git stash save "Mid - development of feature X",这样在git stash list中看到这个stash时就能明确是在功能X开发中途保存的。

三、提交操作

  1. git commit - m “commit - message”
    • 作用:将暂存区的文件提交到本地仓库,并附上一条提交信息(commit - message)。提交信息应该简洁明了地描述本次提交的内容。
    • 示例:如果对file.txt进行了修改并添加到暂存区后,可以执行git commit - m "Update file.txt"
  2. git commit - a - m “commit - message”
    • 作用:这是一个组合命令,相当于先执行git add - - all(将所有修改、删除和新添加的文件添加到暂存区),然后再执行git commit - m "commit - message"
    • 示例:如果对多个文件进行了修改并且不想逐个添加到暂存区,可以执行git commit - a - m "Update multiple files"

四、分支管理

  1. git branch
    • 作用:查看本地分支列表。它会显示当前仓库中所有的本地分支名称,并且当前所在分支会以特殊标记(如*)显示。
    • 示例:执行git branch,如果看到masterfeature - branch,表示仓库中有这两个本地分支,并且如果*master旁边,说明当前处于master分支。
  2. git branch [branch - name]
    • 作用:创建一个新的本地分支。新分支会从当前分支的相同提交点创建。
    • 示例:如果要创建一个名为new - feature的分支,可以执行git branch new - feature
  3. git checkout [branch - name]
    • 作用:切换到指定的分支。这会使工作区、暂存区和本地仓库的状态切换到目标分支的状态。
    • 示例:要从master分支切换到new - feature分支,可以执行git checkout new - feature
  4. git merge [branch - name]
    • 作用:将指定分支合并到当前分支。例如,将feature - branch合并到master分支。
    • 示例:在master分支下执行git merge feature - branch,会将feature - branch中的所有提交合并到master分支。

五、远程仓库操作

  1. git remote - v
    • 作用:查看当前仓库关联的远程仓库信息,包括远程仓库的名称(通常是origin)和对应的URL地址。同时还会显示推送(push)和拉取(pull)的URL是否相同。
    • 示例:执行git remote -v,会看到类似origin git@gitee.com:zhongxianyao/test-go (fetch)origin git@gitee.com:zhongxianyao/test-go (push)
  2. git push [remote - name] [branch - name]
    • 作用:将本地分支推送到远程仓库。通常remote - nameorigin,表示默认的远程仓库。
    • 示例:如果要将本地的master分支推送到origin远程仓库,可以执行git push origin master
  3. git pull [remote - name] [branch - name]
    • 作用:从远程仓库拉取指定分支的最新代码到本地。它实际上是先执行git fetch(获取远程仓库的更新信息),然后执行git merge(将获取到的更新合并到本地分支)。
    • 示例:要从origin远程仓库的master分支拉取最新代码,可以执行git pull origin master

六、标签操作

  1. git tag
    • 作用:列出本地仓库中的所有标签。标签可以用于标记特定的版本,如软件发布版本等。
    • 示例:执行git tag,如果仓库中有v1.0v1.1等标签,它们会被列出。
  2. git tag [tag - name]
    • 作用:在当前提交上创建一个轻量级标签。轻量级标签只是一个指向特定提交的指针,没有包含额外的元数据。
    • 示例:如果要为当前版本创建一个名为v2.0的轻量级标签,可以执行git tag v2.0
  3. git tag - a [tag - name] - m “tag - message”
    • 作用:创建一个带注释的标签。带注释的标签包含标签名、指向的提交、标签创建者、日期以及标签消息等信息。
    • 示例:执行git tag - a v2.1 - m "Release version 2.1"可以创建一个名为v2.1且带有注释的标签。
  4. git push [remote - name] [tag - name]
    • 作用:将本地标签推送到远程仓库。
    • 示例:如果要将v2.0标签推送到origin远程仓库,可以执行git push origin v2.0

七、日志查看

  1. git log
    • 作用:查看提交历史记录。默认情况下,它会按时间顺序列出每个提交的哈希值、作者、日期和提交消息等信息。
    • 示例:执行git log会显示类似如下信息:
commit 5f0ad77fe04094bdc2b5883bc32f8d130bdb7696 (HEAD -> master,
origin/master, origin/HEAD)
Author: jasperzhong <jasper_zhong@qq.com>
Date:   Fri Aug 30 18:47:49 2024 +0800

feat: pprof
  1. git log --oneline
    • 作用:以简洁的一行格式显示提交历史。每个提交只显示哈希值的前几位和提交消息,这样可以更快速地浏览提交历史。
    • 示例:执行git log --oneline可能会显示:
5f0ad77 (HEAD -> master, origin/master, origin/HEAD) feat: pprof
2b3843d feat: loadsh_style (lo, go-fun)
04104bb chore(): cmd cobra

八、撤销操作

  1. git reset [commit - hash]
    • 作用:将当前分支的头指针移动到指定的提交(commit - hash)。这可以用于撤销最近的一些提交。如果不指定--hard--soft--mixed(默认是--mixed)选项,它会将暂存区和工作区的状态调整到指定提交后的状态。
    • 示例:如果要撤销最近的一次提交并保留工作区的修改,可以执行git reset HEAD^HEAD^表示上一个提交)。
  2. git revert [commit - hash]
    • 作用:创建一个新的提交来撤销指定提交的更改。与git reset不同,git revert不会删除历史记录,而是通过创建一个反向的提交来抵消之前的提交效果。
    • 示例:如果要撤销一个已经推送到远程仓库的提交,可以执行git revert a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0,这会创建一个新的提交来还原之前提交所做的更改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程点滴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值