1.4 远程仓库的使用
📡 理解远程仓库 (Remotes)
Section titled “📡 理解远程仓库 (Remotes)”远程仓库是项目的网络托管版本。它们是协作和备份的基础。当您使用 git clone 时,Git 会自动为您设置一个名为 origin 的默认远程仓库。
查看已配置的远程仓库
Section titled “查看已配置的远程仓库”使用 git remote -v 命令可以列出您配置的所有远程仓库的短名称及其 URL。
git remote -v输出示例
origin https://github.com/user/repo.git (fetch)origin https://github.com/user/repo.git (push)➕ 添加和重命名远程仓库
Section titled “➕ 添加和重命名远程仓库”添加新的远程仓库
Section titled “添加新的远程仓库”如果您需要连接到一个新的远程仓库,可以使用 git remote add 命令。这在项目有多个托管地或需要连接到团队成员的 Fork 时非常有用。
git remote add [shortname] [url]
# 示例:添加原始上游仓库git remote add upstream https://github.com/original-author/repo.git重命名远程仓库
Section titled “重命名远程仓库”如果您想更改已配置远程仓库的短名称(例如,将默认的 origin 改为更具描述性的名称),可以使用git remote rename。
git remote rename origin my-main-repo注意
重命名远程仓库不会影响远程服务器上的内容,它只更改您本地配置中用于引用该仓库的名称。
📤 推送更改 (Pushing)
Section titled “📤 推送更改 (Pushing)”推送是将本地仓库中已提交的更改上传到远程仓库的操作。这是共享工作成果的主要方式。
首次推送分支
Section titled “首次推送分支”当第一次将本地分支推送到远程时,需要使用 -u 或 --set-upstream 标志来设置跟踪关系,以便后续可以直接使用 git push。
git push -u origin <branch-name># 示例:首次推送 main 分支git push -u origin main一旦设置了跟踪关系,之后只需使用简洁的命令即可。
git push⚠️ 推送失败?
如果远程仓库在您上次拉取后有新的提交,您的推送可能会被拒绝。此时,您必须先执行
git pull或git fetch/merge合并远程的更改。
📥 拉取和抓取更改 (Pulling & Fetching)
Section titled “📥 拉取和抓取更改 (Pulling & Fetching)”要获取其他人在远程仓库中的最新工作成果,您可以使用 git fetch 或 git pull 命令。理解它们的区别对于管理本地分支至关重要。
抓取 (Fetch)
Section titled “抓取 (Fetch)”git fetch 会从远程仓库下载所有新的数据和分支信息,但不会自动合并到您的本地工作目录或本地分支中。
git fetch origin用途
抓取允许您在不更改当前工作区代码的情况下,查看远程有哪些更新。您可以随后手动检查并决定何时、如何合并这些更改。
拉取 (Pull)
Section titled “拉取 (Pull)”git pull 是一个组合命令,它相当于执行了 git fetch,然后自动执行了 git merge 或 git rebase。它会下载远程数据并尝试将其合并到您当前所在的分支中。
这是默认行为。Git 会创建一个新的合并提交来记录远程和本地分支的汇合点:
git pull origin <branch-name># 等同于:git fetch origin && git merge origin/<branch-name>推荐使用 Rebase(变基)代替 Merge。这会将您的本地提交移到远程提交之后,保持提交历史的线性整洁,避免不必要的合并提交:
git pull --rebase# 等同于:git fetch origin && git rebase origin/<current-branch>✂️ 删除远程仓库和分支
Section titled “✂️ 删除远程仓库和分支”删除远程仓库
Section titled “删除远程仓库”如果某个远程仓库不再使用,可以使用 git remote rm 命令将其从您本地的 Git 配置中移除。这只会删除本地对该远程仓库的引用,不会影响远程服务器上的仓库。
git remote rm <shortname># 示例:移除名为 'upstream' 的远程仓库引用git remote rm upstream删除远程分支
Section titled “删除远程分支”如果您不再需要某个远程分支,可以使用 git push 命令的 --delete 选项将其删除。
git push origin --delete <branch-name># 示例:删除远程分支 'feature-branch'git push origin --delete feature-branch简写形式 远程分支删除也可以使用推送一个空分支的简写形式(不太直观,但常用):
Terminal window git push origin :<branch-name># 示例:git push origin :feature/login
Powered by Namyki