分支

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 创建分支
git branch branchname

# 切换分支
git checkout branchname

# -----------------------------------------

# 创建并切换分支
git checkout -b branchname



# 删除分支
git branch -d branchname


# 显示所有的分支及当前所在分支
git branch

# 进一步显示所有分支的最后一次提交
git branch -v

–merged 与 –no-merged 这两个有用的选项可以过滤这个列表中已经合并或尚未合并到当前分支的分支。 如果要查看哪些分支已经合并到当前分支,可以运行 git branch –merged:

1
2
3
git branch --merged
iss53
* master

查看所有包含未合并工作的分支,可以运行 git branch --no-merged

1
2
$ git branch --no-merged
testing

这里显示了其他分支。 因为它包含了还未合并的工作,尝试使用 git branch -d 命令删除它时会失败:

1
2
3
git branch -d testing
error: The branch 'testing' is not fully merged.
If you are sure you want to delete it, run 'git branch -D testing'.

如果真的想要删除分支并丢掉那些工作,如同帮助信息里所指出的,可以使用 -D 选项强制删除它。

变基操作

在本地仓库的 master 分之下执行变基操作时,默认以本地 refs/origin/master (前提是通过 git fetch 进行抓取过了) 为变基操作的目标基地分支。

1
2
3
4
git rebase

# 修改冲突后
git rebase --continue

本地 master 的分支与 res/origin/master 的分支有共同的祖先,找出本地 master 分支相对于 res/origin/master的修改,并将其应用到 res/origin/master 的分支上,(这时,可能需要修改冲突的地方后继续), res/origin/master 分支和本地master分支共同指向最新的合并后的分支,git push 将本地 master 的分支推送到远程仓库的 master 分支,完成了 res/origin/master 分支和本地master分支的变基操作。

合并操作

在本地仓库的 master 分之下执行合并操作时,默认以 refs/origin/master 为要合并的另一个分支。

1
2
3
4
git merge

# 修改冲突后
git commit -a -m "decscription"

进行一次三方合并后,本地master分支的最新提交对象推送到远程仓库完成了合并操作。