当前位置: 首页 > news >正文

git 的常用命令

GIT的使用

    • 一. 创建git本地仓库
      • 1. 配置仓库
      • 2. 忽略某些文件的提交
      • 3. 添加文件并提交
      • 4. 推送到远程仓库
    • 二. 常用的git指令
    • 1. 克隆项目
      • 1. 克隆项目并初始化所有子模块
      • 2. 对已克隆的项目初始化子模块
      • 3. 其他实用命令和技巧
    • 2. 创建分支
      • 1. 仅创建新的分支
      • 2. 创建分支并立即切换到该分支
    • 3. 切换分支
      • 1. 查看远程分支列表
      • 2. 切换分支
    • 4. 提交和推送到远程分支
      • 1. 查看远程主机名指令
      • 2. 查看远程分支列表
      • 3. git push 推送
    • 5. merge 合并分支
    • 6. 撤销和回退
    • 7. git stash:临时保存工作进度
    • 8. 查看git仓库的记录
    • 9. 删除远程仓库
    • 10. 重命名远程仓库

一. 创建git本地仓库

Git 使用 git init 命令来初始化一个 Git 仓库.

在文件夹中,

git init

执行后会在目录下生成一个隐藏的 .git 文件夹,这就表示仓库初始化成功。

1. 配置仓库

git 仓库的设置使用 git config 命令。

使用 git config --list 显示当前的Git全部配置信息:

$ git config --list
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
。。。

只编辑本仓库设置:

$ git config -e    # 针对当前仓库 

当你需要单独设置这个仓库的用户名和邮箱,可以使用配置仓库命令,单独编辑该仓库。

编辑全局Git设置,针对系统上所有仓库

$ git config -e --global   # 针对系统上所有仓库

也可以使用指令配置:

设置提交代码时的用户信息:

$ git config --global user.name "runoob"
$ git config --global user.email test@runoob.com

如果去掉 –global 参数只对当前仓库有效。

⭐️也可以在仓库中找到.git/config ,直接编辑.git/config 文档也是一样的效果。

2. 忽略某些文件的提交

在 Git 中,忽略某些文件,不提交,可以在git仓库中配置 .gitignore 文件来实现。

在项目的根目录下新建(或修改) .gitignore 文件,把不需要提交的文件路径或规则写进去。

例如,在 .gitignore 添加想要忽略的文件,在提交时,这些文件就会被忽略,不会被提交。

# 忽略编译生成的文件
**/*.o
**/*bin# 忽略系统文件
.DS_Store
Thumbs.db
tags# 忽略编译后的build内容
build/

3. 添加文件并提交

# 将文件添加到暂存区
git add README.md# 添加当前目录下的所有文件到暂存区:
git add .# 提交到本地仓库
git commit -m "填写本次提交的原因和仓库更新信息"

4. 推送到远程仓库

git push 命令用于从将本地的分支版本上传到远程并合并。

命令格式如下:

git push <远程主机名> <本地分支名>:<远程分支名>

如果本地分支名与远程分支名相同,则可以省略冒号:

git push <远程主机名> <本地分支名>

查看远程主机名指令

$ git remote
origin  #示例

查看远程分支列表

使用以下命令列出所有远程分支:

$ git branch -r
origin/HEAD -> origin/master
origin/master
origin/develop

查看所有本地和远程分支:

如果需要同时查看本地和远程分支,可以运行:

git branch -a

第一次推送新分支并建立跟踪关系

git push -u origin main
  • -u--set-upstream:把本地 mainorigin/main 绑定,之后只需 git push 即可。

推送当前分支到远程同名分支

git push
  • 前提是已经建立了跟踪关系(通常通过 git clone 或上面的 -u)。

二. 常用的git指令

git 的基本使用流程会涉及到四个部分:

  • workspace:工作区
  • staging area:暂存区/缓存区
  • local repository:版本库或本地仓库
  • remote repository:远程仓库

暂存区是一个临时存储区域,它包含了即将被提交到版本库中的文件快照,在提交之前,你可以选择性地将工作区中的修改添加到暂存区。

版本库包含项目的所有版本历史记录。每次提交都会在版本库中创建一个新的快照,这些快照是不可变的,确保了项目的完整历史记录。

工作区是当前编码使用的分支区,add指令后,我们更改的内容会保存到暂存区,之后 commit指令会提交到本地仓库中,使用push指令之后,会推送到远程仓库。

1. 克隆项目

1. 克隆项目并初始化所有子模块

git clone --recursive <主项目仓库地址>
# 或者使用更长的形式
git clone --recurse-submodules <主项目仓库地址>

此命令会克隆主仓库,并根据主仓库中记录的特定提交(通常是某次快照)来检出子模块特定版本的代码。

2. 对已克隆的项目初始化子模块

如果你之前已经用普通 git clone 命令克隆了主项目,此时子模块目录是空的,你需要额外执行命令来初始化和拉取子模块内容:

# 进入已经克隆的主项目根目录
cd <已克隆的主项目目录>
# 初始化并更新所有子模块(包括嵌套子模块)
git submodule update --init --recursive
  • --init:初始化子模块,将 .gitmodules 文件中定义的子模块信息注册到本地 Git 配置中。
  • --recursive:递归地处理所有嵌套的子模块(即子模块中可能包含的其他子模块)。

3. 其他实用命令和技巧

  • 显示进度:如果子模块很多或很大,可以添加 --progress 参数查看克隆进度。

    git submodule update --init --recursive --progress
    
  • 并行加速初始化:使用 -j <n> 参数(例如 -j 4)可以并行处理多个子模块,以加快初始化速度。

    git submodule update --init --recursive -j 4
    

2. 创建分支

1. 仅创建新的分支

创建一个新的分支,不切换过去。 git branch <分支名>

git branch new-feature  # 创建了一个名为 "new-feature" 的新分支

这个命令仅仅创建一个新的分支。执行后,你仍然会停留在当前工作的分支上,需要手动切换分支,才能开始在上面工作。

2. 创建分支并立即切换到该分支

有两种命令:

命令(现代推荐): git switch -c <分支名>

  • switch 是较新的命令,专用于切换分支,比 checkout 更直观。
  • -c--create 的缩写,表示创建新分支。

命令(传统方式): git checkout -b <分支名>

  • checkout 命令功能较多(既能切换分支又能恢复文件),容易混淆。
  • -b 表示创建新分支。

3. 切换分支

1. 查看远程分支列表

git fetch origin         # 首先确保获取远程仓库的最新信息:cite[4]
git branch -r            # 查看远程分支列表:cite[1]:cite[3]:cite[7]
git branch -a            # 查看所有分支(包括本地和远程):cite[3]:cite[7]

git branch -r 会列出所有远程分支(通常以 origin/ 开头),git branch -a 则会同时列出本地和远程分支。

2. 切换分支

获取到所有的分支后,有两种主要的切换方法。

方法特点方法一:创建本地分支并跟踪远程分支方法二:直接切换到远程分支(Detached HEAD)
适用场景需要在该分支上进行持续开发和提交临时查看远程分支内容,不打算立即进行提交
命令git checkout -b <本地分支名> origin/<远程分支名>
git switch -c <本地分支名> --track origin/<远程分支名>
git checkout origin/<远程分支名>
操作结果在本地创建一个新的分支,并自动与指定的远程分支建立跟踪关系(tracking)HEAD 指针直接指向远程分支的最新提交,处于分离头指针(detached HEAD)状态
后续操作在此分支的修改、提交可直接通过 git push 推送到对应的远程分支(无需指定分支名)在此状态下的新提交不会属于任何分支。若需保存修改,必须创建新分支:git checkout -b <新分支名>

4. 提交和推送到远程分支

1. 查看远程主机名指令

$ git remote
origin  #示例

2. 查看远程分支列表

使用以下命令列出所有远程分支:

$ git branch -r
origin/HEAD -> origin/master
origin/master
origin/develop

查看所有本地和远程分支:

如果需要同时查看本地和远程分支,可以运行:

git branch -a

3. git push 推送

git push 命令用于从将本地的分支版本上传到远程并合并。

命令格式如下:

git push <远程主机名> <本地分支名>:<远程分支名>

如果本地分支名与远程分支名相同,则可以省略冒号:

git push <远程主机名> <本地分支名>

第一次推送新分支并建立跟踪关系

git push -u origin main
  • -u--set-upstream:把本地 mainorigin/main 绑定,之后只需 git push 即可。

推送当前分支到远程同名分支

git push
  • 前提是已经建立了跟踪关系(通常通过 git clone 或上面的 -u)。

5. merge 合并分支

将其他分支合并到当前分支:

git merge <branchname>

例如,切换到 main 分支并合并 feature-xyz 分支:

git checkout main
git merge feature-xyz

6. 撤销和回退

  • 撤销工作区的修改:
git checkout -- file.txt
  • 取消暂存区的文件:
git reset HEAD file.txt
  • 回退到某个提交(保留修改):
git reset --soft <commit-id>
  • 回退到某个提交(丢弃修改):
git reset --hard <commit-id>

7. git stash:临时保存工作进度

git stash 命令允许你临时保存当前工作目录的更改,以便你可以切换到其他分支或处理其他任务。

  • 保存当前工作进度:先把目前的修改保存起来
git stash
  • 查看存储的进度:查看当前保存的记录情况
git stash list
  • 应用最近一次存储的进度:
git stash apply
  • 应用并删除最近一次存储的进度
git stash pop
  • 删除特定存储
git stash drop stash@{n}
  • 清空所有存储
git stash clear

8. 查看git仓库的记录

  • 查看仓库状态:

    git status
    
  • 查看提交历史:

    git log
    

9. 删除远程仓库

git remote remove <远程名>

例如:

git remote remove origin

10. 重命名远程仓库

git remote rename <旧名字> <新名字>

例如:

git remote rename origin upstream
http://www.dtcms.com/a/419869.html

相关文章:

  • 现在ui做的比较好的网站免费云手机无限时间版
  • 整体设计 逻辑系统程序 之2 Target 之1 靶点根治的逻辑体系深化与落地设计:从规则双轨到语言 - 知识桥梁
  • 网站php源码长沙设计公司都有哪些
  • 第一版代码
  • 2025年AI费控系统避坑指南:智能风控+预算管控能力对比
  • Windows的多路复用IOCP
  • 做网站的规范暴雪公司现状
  • 前端提效工具清单,常用前端效率工具推荐与开发提效实战经验
  • 做的网站怎么把技术支持去掉个人社保缴费年限怎么查询
  • 李宏毅机器学习笔记15
  • 数字化转型:开发者思维破局之道
  • 网站会员功能介绍营销背景包括哪些内容
  • 【NCS随笔】peripheral_hids_mouse例程修改为不使用PIN码绑定
  • 第三方软件验收测试:【AutoIt与Selenium结合测试文件上传/下载等Windows对话框】
  • 网站的二级目录是什么10个不愁销路的小型加工厂
  • K8S中关于容器对外提供服务网络类型
  • 建设网站需要虚拟空间嘛专业网站制作公司采用哪些技术制作网站?
  • 超声波水表:原理、实现与核心技术解析
  • 怎样 建设电子商务网站直播网站app开发
  • Nginx 核心功能配置:访问控制、用户认证、HTTPS 与 URL 重写等
  • 大模型显存占用完全指南:从训练到推理的计算公式与实战案例(建议收藏)
  • 惠州做网站采招网招标官网
  • 烟台做网站找哪家好哪个网站可以做海报
  • 【星海出品】计算机科学之磁盘数据读取时间逻辑
  • 模力通AI风格仿写 让公文写作告别“风格焦虑”
  • 构建AI智能体:四十七、Agent2Agent多智能体系统:基础通信与任务协作实现
  • 天猫建设网站的意义张家港网站建设做网站
  • python爬虫进阶版练习(只说重点,selenium)
  • 东莞网站设计教程为企业做好服务保障
  • 福州网站建设q.479185700強网页翻译网站