# PUSH&Pull ⭐️
强大备份
远程仓库并不复杂, 在如今的云计算盛行的世界很容易把远程仓库想象成一个富有魔力的东西, 但实际上它们只是你的仓库在另个一台计算机上的拷贝。你可以通过因特网与这台计算机通信 —— 也就是增加或是获取提交记录
# git clone
克隆仓库
你可能注意到的第一个事就是在我们的本地仓库多了一个名为 o/main 的分支, 这种类型的分支就叫远程分支。由于远程分支的特性导致其拥有一些特殊属性。
远程分支反映了远程仓库(在你上次和它通信时)的状态。这会有助于你理解本地的工作与公共工作的差别 —— 这是你与别人分享工作成果前至关重要的一步.
远程分支有一个特别的属性,在你检出时自动进入分离 HEAD 状态。Git 这么做是出于不能直接在这些分支上进行操作的原因, 你必须在别的地方完成你的工作, (更新了远程分支之后)再用远程分享你的工作成果。
# 远程分支
大多数的开发人员会将它们主要的远程仓库命名为 origin,并不是 o。这是因为当你用 git clone 某个仓库时,Git 已经帮你把远程仓库的名称设置为 origin 了
不过 origin 对于我们的 UI 来说太长了,因此不得不使用简写 o 😃 但是要记住, 当你使用真正的 Git 时, 你的远程仓库默认为 origin!
git commit
git checkout o/main
git commit
# git fetch
本节课我们将学习如何从远程仓库获取数据 —— 命令如其名,它就是 git fetch
。
git fetch
做了些什么?- 从远程仓库下载本地仓库中缺失的提交记录
- 更新远程分支指针(如 o/main)
git fetch
不会做的事- 理解这一点很重要,因为许多开发人员误以为执行了 git fetch 以后,他们本地仓库就与远程仓库同步了。它可能已经将进行这一操作所需的所有数据都下载了下来,但是并没有修改你本地的文件。
git fetch
直接过关
- 理解这一点很重要,因为许多开发人员误以为执行了 git fetch 以后,他们本地仓库就与远程仓库同步了。它可能已经将进行这一操作所需的所有数据都下载了下来,但是并没有修改你本地的文件。
# git pull
git pull
就是git fetch
和git merge
的缩写
git pull
直接过关
# 模拟团队合作
git clone
git fakeTeamwork 2 # 模拟其他人推送了两次
git commit
git pull
# git push
git commit
git commit
git push
# 偏离的工作
任务:
- 1.克隆你的仓库
- 2.模拟一次远程提交(fakeTeamwork)
- 3.完成一次本地提交
- 4.用rebase发布你的工作
git clone
git fakeTeamwork 1
git commit
git pull --rebase
git push
# 锁定的Main
远程服务器拒绝直接推送(push)提交到main, 因为策略配置要求 pull requests 来提交更新.
你应该按照流程,新建一个分支, 推送(push)这个分支并申请pull request,但是你忘记并直接提交给了main.现在你卡住并且无法推送你的更新.
git reset --hard o/main
git checkout -b feature C2
git push origin feature
← 高级话题 origin与它的周边 →