学习git branch

学习git branch分支

没有实际的代码,只有用于区分分支的一些文件

一、创建工程、分享到github,创建分支

时间:2019年8月8日15:30:49

用到的命令

-- 创建分支
git branch [branch-name]
-- 切换分支
git checkout [branch-name]

-- 查看本地分支
git branch

-- 查看远程分支
git branch -r

-- 查看所有分支
git branch -a

-- 删除分支
git branch -d [branch-name]

实际操作

  1. 创建dev分支
    git branch dev
  2. 切换到dev分支
    git checkout dev
  3. 查看当前分支
$ git branch -a
* dev
  master
  remotes/origin/master

可以看到所有的分支:本地dev, master, 远程remotes/origin/master,其中*表示当前分支

二、将本地分支项目提交到本地主分支

时间:2019年8月8日15:34:53

用到的命令

-- 查看当前状态
git status
-- 添加文件
git add [file-name]
-- 提交
git commit -m "comment info"

实际操作

  1. 查看当前状态
$ git status
On branch dev
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   .idea/vcs.xml

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   README.md

可以看到Android Studio自动创建了一个.idea/vcs.xml文件,等待提交,README.md文件修改过,等待添加、提交

  1. 添加文件
    git add README.md
    添加README.md

  2. 查看状态

$ git status
On branch dev
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   .idea/vcs.xml
        modified:   README.md

可以看到上述两个文件等待提交

  1. 提交
$ git commit -m "测试提交dev分支"
[dev 7c5254a] 测试提交dev分支
 2 files changed, 59 insertions(+)
 create mode 100644 .idea/vcs.xml

提交成功

三、合并分支

用到的命令

-- 合并分支
git merge [branch-name]

实际操作

  1. 切换到主分支
$ git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
  1. 合并分支
$ git merge dev
Updating 57c8d40..1e0b9f7
Fast-forward
 .idea/misc.xml |  2 +-
 .idea/vcs.xml  |  6 ++++
 README.md      | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 104 insertions(+), 1 deletion(-)
 create mode 100644 .idea/vcs.xml

这就将dev上修改的结果,合并到了master

  1. 查看状态
$ git status
On branch master
Your branch is ahead of 'origin/master' by 2 commits.
  (use "git push" to publish your local commits)

nothing to commit, working tree clean

可以看到我在dev上的两次提交,也显示在了master中,并且查看文件,说明合并成功

四、提交本地分支到远程分支

用到的命令

-- 创建并提交远程分支(若没有远程分支,则会自动创建)
git push origin [local-branch-name]:[remote-branch-name]

实际操作

  1. 查看当前分支
$ git branch -a
  dev
* master
  remotes/origin/master

可以看到所有的分支,当前所在分支是master

  1. 创建远程分支dev
$ git push origin master:dev
fatal: HttpRequestException encountered.
   发送请求时出错。
Username for 'https://github.com': MycroftWong
Password for 'https://[email protected]':
Enumerating objects: 14, done.
Counting objects: 100% (14/14), done.
Delta compression using up to 4 threads
Compressing objects: 100% (10/10), done.
Writing objects: 100% (10/10), 1.83 KiB | 468.00 KiB/s, done.
Total 10 (delta 6), reused 0 (delta 0)
remote: Resolving deltas: 100% (6/6), completed with 3 local objects.
remote:
remote: Create a pull request for 'dev' on GitHub by visiting:
remote:      https://github.com/MycroftWong/GitBranchLearn/pull/new/dev
remote:
To https://github.com/MycroftWong/GitBranchLearn.git
 * [new branch]      master -> dev

创建时,输入账号密码,创建并提交成功,可以看到是本地master分支提交到了远程dev分支,查看github, 也是如此

五、创建分支跟踪

理想状态:local dev -> local master -> remote dev -> remote master
但是实际上只能本地分支跟踪远程分支

用到的命令


实际操作

  1. local dev -> local master 合并
    在前面已经讲述了,切换到master分支后,合并dev分支
    git merge dev

  2. local master -> remote dev 远程跟踪
    在以后master的直接git pull, git push时会自动提交到跟踪的远程分支

$ git branch -u origin/dev master
Branch 'master' set up to track remote branch 'dev' from 'origin'.

这样,本地master就跟踪(track)了远程分支dev

  1. remote dev -> remote master
    并没有直接的命令,因为local masterremote dev是相同的,所以可以直接提交local masterremote master
git push origin master:master

参考

Android Studio Git 分支实践
如何进行 git 分支管理?

本项目

GitBranchLearn


   转载规则


《学习git branch》 Mycroft Wong 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
使用hexo搭建博客 使用hexo搭建博客
使用hexo搭建博客前言之前也使用了hexo搭建博客,发布到github, 一开始发布了2篇文章之后也没怎么关心,一个是自己懒,二个是当时并不知道如果使用多用户管理,无法在公司的电脑上也同步更新,如果每次在公司写好,再回家整理发布,就有些太
2019-08-09
下一篇 
购买阿里云服务器第一天 购买阿里云服务器第一天
购买阿里云服务器的第一天 ———— 配置前言使用优惠,购买了阿里云轻量级服务器,今天一开始的目的就很明确,能够在外网访问到服务器的内容。 安装因为之前使用过ubuntu进行开发,所以基本操作完全有,安装了jdk1.8.0-211和apach
2019-06-09
  目录