工具 -- git
git 常用的函数
冲突解决
git reset SOFT –> 当commit 后,发现别人已经做了修改, 则先revert commit, 再pull 代码, 再merge, 再commit, push
提取patch
git format-patch -1 xxxxxxx-patch-uuid —> 提取某个patch
1 | git format-patch -M master //当前分支所有超前master的提交 |
rebase 到master
1 | 1. 提交代码到自己分支 |
合并提交
https://www.cnblogs.com/amou/p/9465880.html
git rebase -i checkin-uuid (最常用的是类似 git rebase -i HEAD~2)
git push -f origin branch-name-xxxx
同步fork的分支
先添加 remote 源
1
git remote add remote_origin git@github.com:***/***.git
获取原始仓库分支和对应的提交
1
git fetch remote_origin
更新git remote 中所有的远程repo 所包含分支的最新commit-id, 将其记录到.git/FETCH_HEAD文件中
1
git fetch --all
把原始remote_origin/master的改变合并到你本地的master分支。这会使你fork的分支master 与上层仓库remote_origin repository同步,而不会丢失你本地所做的改变:
1
2
3git merge remote_origin/master
// or
git rebase remote_origin/master提交本地代码到github
1
git push
删除远程upstream
1 | git remote rm remote_origin |
删除提交记录
1 | git reset --soft HEAD~i |
i代表要恢复到多少次提交前的状态,如指定i = 2,则恢复到最近两次提交前的版本。–soft代表只删除服务器记录,不删除本地。
再执行
1 | git push origin master --force |
master代表当前分支
分支管理
- 查看本地及远程所有分支
1
git branch -a
- 删除本地分支
1
git branch -d dev
- 删除远程分支
1
git push origin --delete dev
github 仓库迁移
clone 老的项目 为裸
1
git clone --bare git://www.aa.com/project_name.git
在github 创建一个空项目, 建议任何文件都不创建
将所有git 记录推送到新项目中
1
2cd project_name
git push --mirror git@www.bbb.com/new_project_name.git删除老文件, 并clone 新项目
1
2rm project_name
git clone git@www.bbb.com/new_project_name.git