merge –no-ff

git进行代码合并时一般操纵是git merge feature。这表示快速合并两个分支,将HEAD指针快速指向最远的那个节点。

merge --no-ff禁止进行快速合并,会生成一个新的节点。

这样在提交记录会更清晰。比较适合对于主干分支进行这样的操作。因为主干分支合并操作比较少,一般只有发布一个版本后才会合并,这样的合并最好有对应的tag记录以便日后的跟踪回溯。

参考: Git分支管理策略

merge –abort

在合并时经常会遇到头疼的代码冲突,如果情况比较复杂你不想处理这次冲突。你可以通过merge --abort退出这次合并,将暂存区回退到合并之前状态。也可以运行 git reset --hard HEAD 回到之前的状态或其他你想要恢复的状态。

1
2
3
4
5
6
7
8
$ git status -sb
## master
UU hello.rb

$ git merge --abort

$ git status -sb
## master

git 别名

对于常用的命令,我们可以自己给它起个名字,方便平日快速调用。

git别名设置很简单:git config --global alias.cm commit。你就可以在日常的使用中用cm 代替commit

常用别名设置:

1
2
3
4
5
6
7
8
git config --global alias.cm commit // git cm
git config --global alias.co checkout // git co
git config --global alias.st 'status -sb' // git st
git config --global alias.tags 'tag -l' // git tags
git config --global alias.branches 'branch -a' // git branches
git config --global alias.remotes 'remote -v' // git remotes
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --" // git lg
git config --global alias.unstage 'reset HEAD --' // git untage fileA

更改分支名称

假设旧分支名称为: oldName,新的分支名称为: newName.

变更本地分支名称:

1
$ git branch -m oldName newName

更新远程分支名称:

1
2
$ git push --delete oldName
$ git push origin newName