远程仓库
到目前为止都还在自己电脑里。现在连上互联网上的仓库,把 push、fetch、pull 用得心里有底。
学习目标
- 能连上远程并把自己的提交推上去
- 能说清 fetch 和 pull 的区别
- 明白跟踪分支和 `-u` 参数是怎么回事
远程仓库就是放在互联网某处(多半是 GitHub)的同一个仓库,名字按惯例叫 origin。用 git remote add origin <URL> 连上,用 git push 把自己的提交推上去,用 git pull 把别人的拉下来。本地的做法一点不变——远程只是大家约好碰头的另一份副本。
会不会区分 git fetch 和 git pull,差别很大。fetch 只把远程的最新状态取下来,不动你的分支。pull 则是取下来之后立刻合进你的分支。想先看看别人推了什么再决定,就先 fetch,用 git log origin/main 看一眼,然后再合并。
git push -u origin main 里的 -u,是把本地分支和远程分支配成一对。配好一次,之后只敲 git push、git pull 就够了。再把 git pull --rebase 设成默认,历史里就不会堆满「Merge branch 'main'…」这种没意义的合并提交——你的提交会被重新摞到别人的内容之上,日志保持一条直线。
本步骤要掌握的命令
别光用眼睛看,去终端里真敲一遍。手记住了,工作时才使得出来。
git remote add origin <URL>- 把本仓库连到远程,并把它命名为 `origin`。
git push -u origin main- 推送的同时把分支配好对。之后只敲 `git push` 就行。
git fetch origin- 只把远程的最新状态取下来,不动你的分支。
git pull --rebase- 拉下来后把自己的提交重新摞在上面,让历史保持一条直线。