pull与fetch
两者一般都用于从远程仓库拉取分支内容到本地
git pull // 拉取对应的线上分支的内容到本地
git pull origin <分支名1> // 拉取<分支名1>远程分支内容的同时,将<分支名1> merge 到当前本地分支对应的远程分支,同时本地分支内容也更新
git fetch origin <分支名1> // 拉取<分支名1>远程分支内容,本地分支内容更新,不执行merge操作,需要手动commit、push到本地分支对应的远程分支上
--rebase
git pull // git fetch + git merge
git pull --rebase // git fetch + git rebase
merge 与 rebase
两者都用于分支合并
git merge origin <分支名1> // 将远程分支<分支名1>合并到当前分支,同时会生成一个新的节点,节点提交记录`Merge branch 'master' of ........`
git rebase origin <分支名1> // 将远程分支<分支名1>合并到当前分支,不会生成新的节点,提交记录成一条线性
cherry-pick
可将某些提交节点拉取到当前分支
git cherry-pick <commit_id1> <commit_id2> // 将commit_id1和commit_id2这两个节点的提交拉取到当前分支,commit_id可使用git可视化工具或者命令git log来获取
git cherry-pick <commit_id1>..<commit_id2> // 将commit_id1到commit_id2这两个节点中间的所有提交(不包括commit_id1)拉取到当前分支
git cherry-pick <commit_id1>^..<commit_id2> // 同上,但包含commit_id1这次提交
git cherry-pick <分支名1> // 将<分支名1>最新一次提交拉取到当前分支