1
| git branch | grep -v "master" | xargs git branch -d
|
远程已经被删除的分支,在本地使用git branch -a
命令是依然可以看到。所以需要刷新一下。
1
| git remote prune origin
|
这条命令是删除与关联的陈旧引用
或者
这条命令是在获取之前,删除远程不再存在的任何远程跟踪引用。
分支分为本地和远程两种,使用 git branch
查看分支,发现只有 master
也就是本地分支。
查看远程分支可以使用 git branch -a
可以看到所有分支,包括远端的分支,使用远程分支名字 remotes/origin/15-stable
进行切换。
1
2
3
4
5
6
7
8
9
10
11
12
13
| # 远程分支列表
git branch -r
# 所有分支列表(包括远程)
git branch -a
# 分支列表
git branch
# 创建并切换到dev分支,
git checkout -b dev
# 上面的命令,等于下面的两条命令
# 创建分支
git branch dev
# 切换分支
git checkout dev
|
1
2
| git push origin -d [远程分支名]
git push origin :[远程分支名]
|
git push origin :experimental
Find a ref that matches experimental in the origin repository (e.g. refs/heads/experimental), and delete it.
git symbolic-ref --short -q HEAD
基于哪个分支拉的分支
下面的两个命令都可以获取到“父分支”,来自——How to find the nearest parent of a Git branch?
1
2
3
4
5
6
| git show-branch \
| sed "s/].*//" \
| grep "\*" \
| grep -v "$(git rev-parse --abbrev-ref HEAD)" \
| head -n1 \
| sed "s/^.*\[//"
|
1
| git show-branch | grep '*' | grep -v "$(git rev-parse --abbrev-ref HEAD)" | head -n1 | sed 's/.*\[\(.*\)\].*/\1/' | sed 's/[\^~].*//'
|
如果你还没有推到原点,那么git push -u origin HEAD
可以在本地分支中设置上游跟踪信息。
git push -u origin HEAD
建议合并时保留目标分支的commit信息。即使用:
1
| git merge --no-ff [branch name]
|
当合并错了以后怎么撤销合并呢,使用:
1
| git reset --hard [merge的版本号] #版本号使用 git log 查,这种方法只针对合并以后对当前分支没有过其他操作,有的话比较复杂
|
合并远程分支:
1
2
3
4
5
6
7
8
9
10
11
| # 如果本地没有远程分支:
git checkout -b develop origin/develop # 本地新建develop分支并拉取
# 如果本地已有远程分支:
git checkout develop
git pull origin develop #拉取远程代码
# 方法二:
git fetch origin dev:temp #拉取远程dev分支,创建本地temp分支
git diff temp
git merge temp # 合并
git branch -d temp #删除
|