git pull = git Fetch + merge
git pull --rebase = git Fetch + rebase
远程追踪
你可以让任意分支跟踪 o/main
, 然后该分支会像 main
分支一样得到隐含的 push 目的地以及 merge 的目标。 这意味着你可以在分支 totallyNotMain
上执行 git push
,将工作推送到远程仓库的 main
分支上
git checkout -b totallyNotMain o/main
就可以创建一个名为 totallyNotMain
的分支,它跟踪远程分支 o/main
。
git clone
克隆一个远程仓库到本地仓库之后,本地会有一个origin/main分支(代表这是你从远程仓库拉取的最后Head记录分支)和main分支(本地用的)
main分支是给你在自己本地仓库用的
git rebase X(插入X后面)与git merge X(把X吞并掉),区别还是大的!
第二种合并分支的方法是 git rebase
。
git rebase branchB
git rebase branchA branchB
rebase branchB 就是把当前的一条线上的分支(提交记录)都给插到branch B的屁股后面
Rebase 实际上就是取出一系列的提交记录,“复制”它们,然后在另外一个地方逐个的放下去。
Rebase 的优势就是可以创造更线性的提交历史
执行git
执行git merge test
或者
执行 git rebase test
gitfetch
获取远程仓库最新数据比如orgin/main,但是不会改变本地磁盘内容/main
git fetch
获取远程的数据, 现在我们学习如何将这些变化更新到我们的工作当中
执行git fetch
git pull
就是获取后再合并·本地的
由于先抓取更新再合并到本地分支这个流程很常用,因此 Git 提供了一个专门的命令来完成这两个操作。它就是我们要讲的 git pull
同样的结果!这清楚地说明了 git pull
就是 git fetch 和 git merge 的缩写!
git push
git push会把当前本地仓库的main那条分支-同步到远程的main
然后本地的o/main会自动同步
git push origin XXX_local:XXX_remote
你的本地仓库origin/main和远程仓库的main,对不上,你的origin/main太老了
,git push也会失败 ,则git push要求你得先试着合并
git push失败解决方法:
在push之前必须同步远程仓库
执行fetch Or pull
选择fetch之后
git rebase o/main
git push
Pull Request
远程服务器拒绝!(Remote Rejected)
一般需要在远程克隆到本地的main以外的进行开发