git fetch origin
- 将origin仓库中最新的代码拉取到本地,建立临时的分支分别存对应的版本,例如,远程仓库又main和dev两个分支,则本地为origin/main与origin/dev
git merge origin/dev
- 将获取到的origin/dev临时分支合并到当前分支(当修改了同一个文件的同一行时,则会产生冲冲突,需要手动解决冲突,删除>>>>>>head
========= <<<<<<<<<<< branchname等标记,重新执行git add . 和git commit 命令,生成一个新的提交)
拉取远程分支名–方式1
- git fetch
- git checkout -b 本地分支名 origin/远程分支名
拉取远程分支名–方式2
- git pull origin 远程分支名:本地分支名
注:从远程仓库origin中拉取‘远程分支名’到本地,并重命名为‘本地分支名’
git rebase 命令
设当前分支名为:dev, 将dev rebase到main上。
- git rebase main
复制dev的最新commit到main的最新提交上(可能产生冲突,手动解决冲突,使用git add . 标记冲突解决完毕,执行git rebase --continue完成rebase)
此时,main依旧指向原来的版本,落后于dev一个commit,因此需要checkout到main上执行:
git rebase dev,此时,main和dev均指向了同一个commit,且提交树为线性的
git branch -f main c0
- 强制让main分支指向c0(表示提交记录的哈希值)提交记录
git reset HEAD~n
- 回退n个版本,默认是workdir中不会回退,stage和commit库中回退了
- –hard ,回退至指定的commit版本,stage和workdir都清空
- –mixed,回退至指定的commit版本,stage清空,workdir保持不变
- –soft,回退至指定的commit版本,stage和workdir均保持不变
但是该命令 一般用于本地版本库的撤销操作,当本地完成撤销后,其落后于远端版本库,此时push可能提交不上,需要进行git pull操作,然后才能提交通过
git revert c0
- 基于当前commit新建一个与c0内容相同的commit,此时,本地仓库不会落后与远程仓库,可以push,这也是revert和reset的本质区别
git cherry-pick c0 c1
- 在将c0 c1复制到当前HEAD的下面,顺序按照参数的顺序。
git rebase -i base_commit
可以调整或者选择[HEAD,base_commit)
git rebase branch_name
其作用等同于git merge,将当前commit(HEAD)复制到指定的branch_name下面,可能有confilct
git rebase --abort
终止rebase,回到执行rebase之前的操作
git rebase --continue
继续执行rebase
git checkout -b branch_name HEAD
基于HEAD建立分支branch_name