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

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

相关推荐
小锋学长生活大爆炸2 小时前
【福利】最新免费领取云服务器和虚拟主机攻略
网络·github
码流怪侠3 小时前
GitHub 2026年7月热门项目全景盘点:Agent Skills 生态炸裂,开源世界正在重写规则
程序员·github·agent
我叫黑大帅4 小时前
git 的 NFD 与 NFC 有什么区别?为什么我有个文件在 NFC 中间不会被当成改动,在 NFD 中就会当成改动
git·面试·github
呆萌很7 小时前
Git push 408 超时、远程断开解决办法
git
Lesile7 小时前
Hands-on Git experience
git
Co_Hui9 小时前
Git 基本使用
git
cooldream20099 小时前
AI 时代,Git 应该怎么学
人工智能·git
DogDaoDao9 小时前
【GitHub】WorldMonitor:一个工程极致主义的实时全球情报仪表盘深度解析
python·程序员·架构·github·go语言·worldmonitor·实时全球情报
其实防守也摸鱼10 小时前
GitHub开源项目破圈方法论:从技术自嗨到生态共赢
服务器·数据库·学习·开源·github·命令行·linux系统
析数塔10 小时前
SleeperGem 技术拆解:恶意 gem 是怎么躲过 CI/CD 扫描的
安全·ci/cd·github