git分支常见操作
1.查看分支
查看本地分支
git branch
查看远程分支
git branch -r
查看本地和远程分支
git branch -a
2.创建分支
使用以下命令创建一个本地分支
git branch <本地分支名>
使用以下命令创建一个本地分支且新建分支从特定分支拉取代码
git branch <本地分支名> origin/<远程分支名 or 本地分支名>
使用以下命令创建一个本地分支且新建分支基于某次提交创建
git branch <本地分支名> commit_hash
使用以下命令创建一个本地分支并切换到该分支上:
git checkout -b <本地分支名>
使用以下命令创建一个本地分支并切换到该分支上且新建分支从特定分支拉取代码
git checkout -b <本地分支名> origin/<远程分支名 or 本地分支名>
使用以下命令创建一个本地分支并切换到该分支上且新建分支基于某次提交创建
git checkout -b <本地分支名> commit_hash
3.删除分支
删除本地分支
git branch -D <本地分支名>
删除远程分支
git push origin -d <远程分支名>
4.合并分支
假设把dev分支的代码合并到master分支,执行如下命令
git checkout master
git merge dev
要将“dev”分支合并到master分支并在合并记录中只显示一次提交,可以使用以下命令:
git checkout master
git merge dev --squash
上述命令会将“dev”分支合并到当前分支,并在合并记录中只显示一次提交。在这个过程中,Git 会将合并后的所有提交合并到一起,并要求你输入一个提交信息。你可以输入任何你想要的提交信息。
解决的问题就是在开发分支开发一个功能提交了很多次,但是在master分支只需要一次提交就可以了(还有一种方法是rebase,后面会说到)
下面是一些常用的合并选项:(参考即可)
- --no-commit:在合并之前不要提交更改。这个选项可以在合并过程中出现冲突时使用。
- --strategy=<strategy>:指定合并策略。这个选项可以用来指定使用的合并策略。默认的合并策略是“recursive”,它会尝试递归地合并分支。你也可以使用“recursive”和“theirs”选项来实现更优雅的合并。
- --strategy-option=<option>:指定合并策略选项。这个选项可以用来指定合并策略的选项。例如,你可以使用“--strategy-option=theirs”选项来实现更优雅的合并。
- --squash:在合并之前将所有更改合并到一次提交中。这个选项可以在合并过程中出现冲突时使用。
- --no-squash:在合并之前不要将更改合并到一次提交中。这个选项是默认选项。
- --abort:停止合并过程并退出。这个选项可以在合并过程中出现问题时使用。
- --continue:继续合并过程。这个选项可以在合并过程中出现问题时使用。
- --no-ff:在合并分支时创建一个新的提交。这个选项是默认选项。如果你使用了“--no-ff”选项,Git 将会在合并分支时创建一个新的提交,并在提交信息中指出这是一次新的提交。
- --no-edit:在合并过程中不要编辑合并信息。这个选项是默认选项。如果你使用了“--no-edit”选项,Git 将会在合并过程中不允许你编辑合并信息。
- --allow-unrelated-histories:允许合并不相关的历史记录。这个选项是默认选项。如果你使用了“--allow-unrelated-histories”选项,Git 将会允许你合并不相关的历史记录。
git fetch
git stash
# 保存当前未commit的代码
git stash
# 保存当前未commit的代码并添加备注
git stash save "备注的内容"
# 列出stash的所有记录
git stash list
# 删除stash的所有记录
git stash clear
# 应用最近一次的stash
git stash apply
# 应用最近一次的stash,随后删除该记录
git stash pop
# 删除最近的一次stash
git stash drop
git revert
git reset
git cherry pick
git rebase