合并远程分支
- git fetch origin branch
- git checkout [your-branch]
- git merge FETCH_HEAD,merge 前可以先git dff [your-branch] [remote-branch],查看本地分支和远程分支的区别
使用 rebase 合并分支
- git rebase [origin-branch]
- 遇到冲突,解决完冲突后 git add
- git rebase –continue
rebase 和 merge 的区别
合并历史commit
git rebase -i [commit id] commit id是合并的提交的前一个提交节点的commitID,最上的是最早的提交
修改需要合并的commit,将pick修改成 squash
退出保存 wq
git push origin [branch-name] -f
rebase 的主要用途一是替代merge,保持分支历史的线性提交;二是方便合并历史提交。
撤销一次merge
- git reflog 确定回滚的commit id
- git reset –hard [commit id]
git revert 也可以回退到指定版本,和reset的区别在于,revert会产生一次新的提交,用一次新的提交来消除历史修改。而reset是直接删除历史commit。
合并时遇到冲突,想取消merge
git merge –abort
修改最后一次提交的commit message
git commit –amend
清空工作区的修改
git checkout .
恢复误删分支
- git log -g 找到之前分支提交的 commit id
- git branch recover_branch [commit id],这时切换到 recover_branch,可以看到原来的文件了。
修改历史提交信息
- git rebase -i HEAD~10(查看前10次提交信息,也可以直接输入想要修改的commit id)
- 将想要的修改的commit前的 pick 修改为 reword,保存并退出。
- 在弹出的窗口中,修改commit message,保存。
删除历史提交
- 用 git rebase -i 928582641a 指定 base 为你需要删除的提交的前一个提交。
- 删除指定的commit, 保存退出. 之后可能 git 会提示出现 conflict, 根据提示完成处理。
创建空白分支
- git checkout –orphan new_branch
- git rm -rf .
查看本地分支和远程分支的差异
- git fetch origin
- git diff master origin/master –minimal
建立远程追踪分支
git branch -u [remote_branch]
删除远程分支
- git branch -r -d origin/branch-name
- git push origin :branch-name