master有新的提交,本地想不带commit的拉取master最新代码:
-
git pull --rebase
ps: 如果有冲突还需要解决冲突
然后: git add.
git commit --amend [–no-edit]
git rebase --continue -
git fetch --all
git merge origin/master
// 执行到这里之后,可能会有冲突,有冲突的话就继续提交
git add .
git commit -m ‘提交说明’ -n
其他分支B有新的提交,本地分支A想不带commit的拉取最新代码,形成新的patch发布到远程分支A
git fetch --all
git merge origin/B [–no-commit] //不想带B的commit信息这里就加上–no-commit
如果有冲突,解决冲突
git add .
git commit --amend --no-edit//这里会报错:fatal: You are in the middle of a merge – cannot amend. 参考stackOverflow
将.git/MERGE_HEAD删除即可
删除后重新执行git commit --amend --no-edit, git push操作
本地有新的提交
- 如果提交到远程的commit还没有被merge
只想提交新的代码,不想修改commit信息
git add.
git format-patch
git commit --amend [–no-edit]
最后git push - 提交到远程的commit全都被merge了
只能重新
git add.
git commit -m ‘’
git push
本地分支合到master
git merge origin/[分支名] --log --no-ff
–no-ff的含义,不允许通过直接移动指针的方式,将当前master指针移动到分支。
–ff的解释:fast forward
例如下面这种,新分支feature556是在master的基础上加了两个commint. 直接移动master指针到最新即完成合并
下面这种情况无法执行–ff ,必须使用—no-ff
master和当前分支都有了新的提交