- 可以到这里下载安装
Git: git-scm.com/download/wi…- Learn Git Branching游戏在这里:learngitbranching.js.org/?locale=zh_…
Level 6-3 《Git Fetch》
git fetch下载远程仓库的最新状态,但它不会更新本地分支。
这一关使用git fetch下载远程仓库,对本地存储的远程分支进行更新,这不会影响本地分支的状态。不仅在游戏里学习,你还可以在真实环境中进行实验。
游戏答案:
# 下载远程仓库最新状态
git fetch
创建远程仓库
你需要为这一关创建一个远程仓库,本文以gitee为例进行演示。
-
点击右上角加号创建仓库
-
为仓库命名
这一步只起一个仓库名称即可,不要勾选其他选项 -
复制仓库地址
准备实验环境
这里设置一个临时环境变量,保存你的远程仓库地址,也就是上面你复制的远程仓库地址,后面用到远程仓库地址时直接引用该变量:
set LGB_REMOTE=https://gitee.com/你的账户/你的远程仓库
下面命令完整CV到Windows cmd命令行窗口中执行:
# 准备一个空目录
mkdir level-6-3
cd level-6-3
# 初始化本地仓库,然后做三次提交
git init
echo 111>>a.txt
git add .
git commit -m "c0"
echo 222>>a.txt
git add .
git commit -m "c1"
echo 333>>a.txt
git add .
git commit -m "c2"
# 在上一个提交位置创建bugFix分支,并切换到该分支
git checkout "HEAD^" -b bugFix
# 在bugFix分支做一次提交
echo 444>>a.txt
git add .
git commit -m "c3"
# 本地仓库关联远程仓库,把远程仓库命名为origin(习惯名)
git remote add origin %LGB_REMOTE%
# 向远程仓库origin推送所有分支,
# -u使本地仓库关联远程仓库,master关联origin/master,bugFix关联origin/bugFix
git push origin -f -u --all
# 切换到上层目录
cd ../
# 把远程仓库克隆到临时目录
git clone %LGB_REMOTE% level-6-3-tmp
# 进入临时目录
cd level-6-3-tmp
# 切换到master分支,然后做两次提交
git checkout master
echo 555>>a.txt
git add .
git commit -m "c4"
echo 666>>a.txt
git add .
git commit -m "c5"
# 切换到bugFix分支,再做两次提交
git checkout bugFix
echo 777>>a.txt
git add .
git commit -m "c6"
echo 888>>a.txt
git add .
git commit -m "c7"
# 向远程仓库origin推送全部分支
git push origin --all
# 会上一层目录
cd ../
# 删除临时目录
rmdir level-6-3-tmp /S /Q
# 切换回本地仓库,本地仓库的进度已经落后于远程仓库
cd level-6-3
# 查看本地仓库提交树
git log --graph --pretty=oneline --all
仓库的进度已经落后于远程仓库:
真实答案:
# 下载远程仓库最新状态,使本地存储的远程分支更新到最新状态,但这不会更改本地分支的状态
git fetch
# 查看提交树
git log --graph --pretty=oneline --all
本地存储的远程分支更新到最新状态,但这不会更改本地分支的状态: