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

origin 是 Git 给你默认远程仓库起的名字 ,当你用 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 fetch 或 git 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 是原作者的仓库
  • 自定义名称 :比如 backup、deploy 等,你可以自己添加

添加方法:

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
  • 重要提示

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

相关推荐
Winlifes3 天前
我给 Codex 做了一个 Git 面板:分支树、提交历史和工作区操作
git
lpfasd1233 天前
2026年第38周GitHub趋势周报
python·科技·github
u1301303 天前
GitHub 热榜项目:日榜(2026-09-21)
人工智能·github
张洛闻Eren3 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
m4Rk_3 天前
【论文阅读】Agent 记忆机制(77):TSM——让记忆回到事件真正发生的时间
论文阅读·人工智能·学习·开源·github
橘和柠3 天前
依赖冲突:装个包装崩了项目,怎么排查和救回来
github
别动我齐刘海3 天前
ROS2 Jazzy + C++ 实战路线——ros2_control
c++·人工智能·python·opencv·机器学习·机器人·github
怕浪猫3 天前
ZCode 开源了来看看这是个什么东西
node.js·github·代码规范
demo007x3 天前
我用 AI 做了一个跨平台的PopClip:拾趣Magpie
程序员·github·ai编程