git分支操作

git分支操作

如果你想更深入,可以看 廖学峰 的git教学

  1. 查看分支
1
git branch
  1. 新建分支
1
2
3
git branch 「分支名称」
#形如
git branch a001
  1. 切换分支
1
2
3
git checkout 「分支名称」
#形如
git checkout a001
  1. 创建+切换分支
1
git checkout -b 「分支名称」
  1. 合并某分支到当前分支
1
2
3
git merge 「分支名称」
#形如
git merge a001
  1. 删除分支
1
2
3
git branch -d 「分支名称」
#形如
git branch -d a001
  1. 添加本地分支到远程分支
1
git push origin 「分支名称」
  1. 查看远程分支
1
git branch -r
  1. 删除远程分支
1
2
3
4
5
git branch -r -d origin/「分支名称」  
git push origin :「分支名称」
#形如
git branch -r -d origin/a001
git push origin :a001

例子

场景如下

你在github上新建了一个仓库 如 bbb

在你本地创建 bbb目录 并切换到 bbb目录

执行如下命令,你会初始化一个 README.md文件

1
2
3
4
5
6
echo "# bbb" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:slTrust/bbb.git
git push -u origin master
  1. 当前分支为master 创建 1.txt 输入 2222 并且提交到远程分支
1
2
3
4
echo '2222'>1.txt
git add 1.txt
git commit -m 'add 1.txt'
git push
  1. 新建分支并切换到新建的分支
1
2
git branch a001
git checkout a001

运行 git branch 你会发现 「a001」高亮了

  1. 新分支下「a001」新建 2.txt 并提交到本地仓库
1
2
3
echo '3333'>2.txt
git add 2.txt
git commit -m 'add 2.txt'
  1. 如何把新分支提交到远程仓库并建立远程分支
1
git push origin a001

刷新浏览器你的github上就多了一个 a001 的分支

  1. 删除远程分支
1
2
3
4
5
6
7
8
#你可以查看远程分支有哪些 然后再进行删除
git branch -r
# 你会看到远程有哪些分支

#删除远程分支
git branch -r -d origin/a001
git push origin :a001
# 刷新浏览器你会发现你的 a001 分支已经不在了

注意事项

  • 新建分支的时候 git branch a001
  • 会复制你当前分支(比如我的是master) 的所有内容复制到你的新分支里(a001分支)

合并冲突了咋办

前置条件,两个分支

  • master
  • a01

index.html 都修改了第三行

你现在在 master分支准备合并

1
2
3
4
5
6
7
8
9
10
11
git merge a01
# 提示你冲突了

如果你用的是 vscode
打开这个 index.html

你会发现 冲突代码被高亮了

head是当前分支的改动
======= 分割线
其他分支的变动

上传代码到远程仓库

  • 本地配置ssh
  • 远程建立仓库如 demo-1
  • git remote add origin git@demo-1
    • 在本地添加远程仓库地址
    • origin是远程仓库的默认名字
  • git push -u origin master

上传其他分支

1
2
3
4
5
6
# 方法一
git push origin x:x

# 方法二
git checkout x
git push -u origin x

一个本地仓库上传多个远程仓库

1
2
git remote add repo2 git@xxx
git push -u repo2 master