Git 和 GitHub:(三)基础知识与实用技巧

上一篇 下一篇


基础知识与实用技巧

1)安装git后第一件事:设置用户名和邮箱

bash 复制代码
git config --global user.name "zhangsan"
git config --global user.email "zhangsan@example.com"
  • name 不要求真实姓名,个人练习可用昵称,公司项目按规范填写。

  • 邮箱会公开出现在提交记录中,若担心隐私可使用 GitHub 提供的匿名邮箱。

  • 配置后可通过 git config --global --list 检查是否生效,能看到类似:

    bash 复制代码
    user.name=zhangsan
    user.email=zhangsan@example.com

    就说明配置成功了。


2)远程仓库 URL

在 Git 中,"远程仓库 URL" 指的是该仓库在网络上的唯一访问地址,用于告诉 Git "从哪里克隆"或"推送到哪里"。

常见的 URL 格式有三种:

  1. HTTPS 地址(最常用)

    bash 复制代码
    https://github.com/用户名/仓库名.git
    • 优点:简单、无需额外配置,适合初学者
    • 推送时通常需要输入账号密码(或 Personal Access Token)
  2. SSH 地址(推荐开发者使用)

    bash 复制代码
    git@github.com:用户名/仓库名.git
    • 优点:配置好 SSH 密钥后,无需每次输密码,更安全高效
    • 需要提前在本地生成 SSH 密钥并添加到 GitHub/GitLab 等平台
  3. Git 协议(较少用)

    bash 复制代码
    git://github.com/用户名/仓库名.git
    • 只读,一般用于公开仓库的快速克隆(不支持推送)

3)origin?upstream?main?origin/main?

3.1)origin

originGit 给你默认远程仓库起的名字 ,当你用 git clone 克隆一个项目时,Git 会自动把那个远程仓库记作 origin

可以通过命令查看它指向哪里:

bash 复制代码
git remote -v

输出类似:

bash 复制代码
origin  https://github.com/user/repo.git (fetch)
origin  https://github.com/user/repo.git (push)

注意:origin 只是一个名字,不是关键字。你可以改成别的(比如 myrepo),但大家习惯叫它 origin

3.2)main

main 是 Git 仓库中的一个本地分支名 ,现在大多数项目用它作为主分支(以前常用 master)。它代表你当前在本地开发的主线代码,你可以在这个分支上提交、修改、切换。

3.3)origin/main

origin/main本地保存的、对远程仓库 main 分支最新状态的记录,也叫"远程跟踪分支"。

  • 它在你本地,但不能直接修改或提交

  • 每次你运行 git fetchgit pull,Git 会更新 origin/main,让它和远程保持一致。

  • 你可以用它来查看远程有什么新提交,比如:

    bash 复制代码
    git log main..origin/main   # 看本地 main 缺少哪些远程提交

简单说:远程仓库的 main 分支 → 在 GitHub/GitLab 上,origin/main → 你电脑里对它的"快照"。

  • 远程 main 分支 = GitHub 上的真实分支
  • origin/main = 你手机里昨天拍的 GitHub 页面截图
  • git fetch = 重新截图(更新缓存),但不修改你自己的文档

3.4)upstream

这些都叫 remote 名称,代表不同的远程仓库。常见的有:

  • origin:你自己的仓库(通常是 fork 或主仓库)
  • upstream:原始上游仓库(常用于开源项目协作)例如 fork 了一个项目,origin 是你的 fork,upstream 是原作者的仓库
  • 自定义名称 :比如 backupdeploy 等,你可以自己添加

添加方法:

bash 复制代码
git remote add upstream https://github.com/original/repo.git

之后就可以用:

bash 复制代码
git fetch upstream
git log upstream/main

4)一行执行多条命令

Git 命令行本身对多条命令的分隔符并无特殊处理,但可以利用 Shell 的 && 或直接粘贴多行:

bash 复制代码
git config --global user.name "zhangsan" && git config --global user.email "zhangsan@example.com"
  • && 表示:前一条成功执行后再执行后一条。
  • 也可以直接一次性粘贴两行(每行一条命令),终端会按顺序依次执行。

5)目标提交的哈希值

每次提交之后,都会有一个哈希值。例如:


6)重命名仓库

当本地仓库和远程仓库关联之后,文件夹/仓库名称是否可以改动:

  • 本地文件夹改名

    • 直接重命名本地项目文件夹不影响 Git 和远程关联 ,因为 .git 目录内的远程 URL 未变。
  • GitHub 仓库改名

    • 在 GitHub 网页端更改仓库名后,本地推拉会失败。

    • 解决:更新本地远程 URL:

      bash 复制代码
      git remote set-url origin git@github.com:新用户名/新仓库名.git
  • 重要提示

    • 无论改哪边,建议同步更新远程地址,避免后续操作报错。

相关推荐
lingran__10 小时前
Git 完全指南(三):远程仓库与标签管理
开发语言·git·gitee·ssh·团队协作·远程仓库·分布式版本控制
Phil3231 天前
开源一个 Windows 实时面试助手:听译、置顶提词、按需生成英文稿
面试·github
千纸鹤1901 天前
Kafka vs RabbitMQ:在秒杀场景下如何选型与
github
lingran__1 天前
Git 完全指南(二):分支管理
git·分支管理·版本控制·团队协作·多人开发·git flow
左青1 天前
零 token 发布 npm 包:Trusted Publisher + OIDC 实战(附五个真实的坑)
github
编程快车1 天前
GitHub 从入门到精通(精炼版):30 分钟跑通建仓、提交与协作
github
WebInfra1 天前
Rslib 1.0 正式发布:面向多场景的 JavaScript 库开发工具
前端·javascript·github
Tongsr1 天前
别只混淆代码:用 Kaleido 加固整个 Android Release AAB
前端·算法·github
敢敢是只喵i1 天前
WorkBuddy 开放生态之后,AI 真正进入业务系统还缺什么?
github
必须会一定会1 天前
Agent Handoff v0.6.0 跨电脑同步:Git、EVENTS.jsonl、CONTEXT.md 使用方法
人工智能·git·ai编程