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

不同场景下git指令的搭配

添加账号

git config --global user.name "YourName"
git config --global user.email "your_email@example.com"

设置 Git 默认分支名称为 main

git config --global init.defaultBranch main

初始化仓库:

git init

配置SSH 密钥

如果你使用 SSH 方式连接 GitHub,需要生成并添加 SSH 密钥到 GitHub:

ssh-keygen -t rsa -b 4096 -C "your@email.com"

然后将 ~/.ssh/id_rsa.pub 中的内容复制粘贴到 GitHub 的 Settings > SSH and GPG keys 页面。

初始化本地仓库并上传代码

情况一:新建项目上传到 GitHub
# 进入你的项目目录
cd /path/to/your/project# 初始化 Git 仓库
git init# 添加所有文件到暂存区
git add .# 提交更改
git commit -m "Initial commit"# 关联远程仓库(HTTPS方式)
git remote add origin https://github.com/your-username/repo-name.git# 或者使用 SSH 方式(推荐)
git remote add origin git@github.com:your-username/repo-name.git# 推送代码到 GitHub 主分支(main)
git push -u origin main

💡 如果你本地是 master 分支,而 GitHub 默认是 main,你可以重命名分支:

git branch -M main

情况二:已有 GitHub 仓库,克隆到本地再提交代码
# 克隆远程仓库到本地
git clone https://github.com/your-username/repo-name.git# 进入项目目录
cd repo-name# 添加新文件或修改内容
# ...# 添加更改
git add .# 提交更改
git commit -m "Add new feature"# 推送到远程仓库
git push origin main

提交修改到本地(切换分支时候需要先执行这一步)

git add .
git commit -m "保存当前工作进度"

查看当前 Git 仓库关联的远程库

git remote -v

这个命令会列出所有与该仓库关联的远程库及其 URL。输出结果通常看起来像这样:

origin  https://github.com/user/repo.git (fetch)
origin  https://github.com/user/repo.git (push)

在这个例子中,origin 是远程库的名字,而 https://github.com/user/repo.git 是远程库的 URL。(fetch)(push) 表明该远程库用于 fetch(拉取) 和 push(推送) 操作。通常情况下,你会看到同一个 URL 对应着 fetch 和 push 操作,但也可以配置不同的远程库分别用于这些操作。

如果你只想知道用于推送的远程库,可以专注于那些标注了 (push) 的行。例如,上面的例子显示 origin 远程库被配置为向 https://github.com/user/repo.git 推送更改。

添加远程库

git remote add github git@github.com:ergevv/xxxxx.git

这个仓库在电脑本地叫github,指向的是github的仓库。

git push github master

将本地的分支推送到github指向的git@github.com:ergevv/xxxxx.git仓库的master分支。

推送到特定分支

  1. 查看当前分支
git branch
  1. 创建并切换到 main 分支
git checkout -b main

这会基于当前提交创建一个新的 main 分支,并切换过去。

  1. 设置远程跟踪(关联远程仓库的 main 分支)
    如果你确定远程仓库已经有 main 分支,可以直接拉取:
git checkout -b main origin/main

创建一个新的本地分支 main,并让它跟踪远程分支 origin/main(也就是你之前添加的远程仓库 github 的 main 分支),然后切换到这个新分支。

  1. 推送本地 main 分支到 GitHub 的 main
git push github main

这样就会把你的本地 main 分支推送到 GitHub 上的 main 分支了。


清理远程的分支

git push github --delete master

删除本地指向的仓库:

git remote remove github

将本地的分支 dev/test 推送到 GitHub 上的远程仓库,并且希望它被推送到 远程的 master 分支:

git push github dev/test:master

下载指定分支

  1. 命令格式:
git clone -b <分支名> <仓库地址> <本地目录名(可选)>

示例:从 GitHub 下载名为 dev/test 的分支:

git clone -b dev/test https://github.com/ergevv/xxxx.git
  1. 如果已经克隆了仓库,但想切换到其他分支
cd path/to/project     # 进入已克隆的项目目录
git fetch               # 获取远程所有分支信息
git checkout dev/test  # 切换到指定分支

如果提示 Branch 'dev/mcapRecord' not found,说明你需要先拉取远程分支:

git fetch origin dev/test
git checkout -b dev/test origin/dev/test

fetch和pull的区别

git fetch 是 Git 中一个非常有用的命令,它主要用于从远程仓库获取最新的信息和更新,但不会自动合并或修改你当前的工作目录。具体来说,git fetch 的作用可以概括为以下几个方面:

  1. 获取远程更新

    • git fetch 会连接到指定的远程仓库,并拉取所有本地没有的数据(如新的提交、分支等),但不会将这些更改自动合并到你的工作目录中。
    • 这意味着你可以查看远程发生了哪些变化,而不用担心这些变化会直接影响你的工作。
  2. 更新远程引用

    • 它会更新本地关于远程分支的信息(即远程跟踪分支)。例如,如果你在远程仓库上有一个名为 origin/master 的分支,执行 git fetch 后,Git 会确保你的本地 origin/master 指向与远程仓库一致的位置。
  3. 不改变本地分支的状态

    • git pull 不同,git fetch 不会尝试合并或重新应用任何远程的更改到你当前的分支。因此,它是安全的,尤其是在你不确定是否需要将远程的更改合并到当前工作中时。
1. 查看远程分支的变化
git fetch origin
  • 执行上述命令后,你可以通过 git loggit diff 来比较本地分支与远程分支之间的差异。

例如,查看 master 分支与远程 origin/master 的差异:

git log master..origin/master
git diff master origin/master
2. 更新远程跟踪分支

假设你想切换到一个新的远程分支,但该分支尚未在本地存在:

git fetch origin dev/test
git checkout dev/test
  • 这会确保本地有最新的 dev/test 分支信息,然后你可以安全地切换到这个分支。
3. 在合并之前检查远程更改

如果你想在实际合并之前查看远程分支上的最新更改,可以先执行 git fetch,然后手动决定如何处理这些更改(比如是否合并):

git fetch origin
# 现在你可以选择是否以及如何合并
git merge origin/master
# 或者
git rebase origin/master

注意:当git pull时,如何本地有修改的文件,那么该文件拉取时,不是远程仓库的最新版本,而是本地的修改版本。

http://www.dtcms.com/a/284510.html

相关文章:

  • pycharm回车、删除、方向键和快捷键等不能使用原因
  • TRAE Agent 在 SWE-bench Verified 上得分 75.2%,并已开源
  • opencv、torch、torchvision、tensorflow的区别
  • Linux717 SWAP扩容;逻辑卷条带化
  • 前端-HTML
  • 杰理AC70NN项目用脚本自定义添加.mk文件,直接链接进主Makefile脚本编译
  • 开通腾讯位置复位
  • 深入理解Collections.addAll方法
  • 【华为】交换机vlan互访实验
  • 【人工智能99问】梯度消失、梯度爆炸的定义、后果及规避手段?(7/99)
  • JAVA面试宝典 -《Kafka 高吞吐量架构实战:原理解析与性能优化全攻略》
  • UE5多人MOBA+GAS 25、创建数据表初始化属性,使用MMC计算伤害
  • 模块化社交新范式:Moments用极简设计重构数字表达
  • 麒麟信安参编的三项软件供应链安全团体标准发布
  • 运维工程师面试题174道
  • 单片机最小系统硬件调试踩的一些坑
  • lesson16:Python函数的认识
  • Linux手动安装Nginx(基于Centos 7)
  • ESLint 完整功能介绍和完整使用示例演示
  • 01项目管理概论
  • Shell变量
  • 操作系统系统面试常问(进程、线程、协程相关知识)
  • Java使用FastExcel实现Excel文件导入
  • 基于springboot+vue+mysql框架开发的景区民宿预约系统的设计与实现(源码+论文)
  • 政务类产品的用户场景如何描述
  • STM32 DMA通信详解
  • Qt CMake 学习文档
  • 优化 CSS 性能
  • 设计模式是什么呢?
  • Spring AI之Prompt开发