# GitCommandLearning
**Repository Path**: Eadon999/GitCommandLearning
## Basic Information
- **Project Name**: GitCommandLearning
- **Description**: learning the command of Git
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-08-20
- **Last Updated**: 2021-08-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# GitCommandLearning
learning the command of Git
##创建分支并切换的原理
之前提到的 HEAD 严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。
一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点,每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长。
当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上。
不过,当切换到dev分支后,对工作区的修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针保持不变
假如我们在dev上的工作完成了,就可以把dev合并到master上。Git怎么合并呢?最简单的方法,就是直接把master指向dev的当前提交,就完成了合并。
合并完分支后,甚至可以删除dev分支。删除dev分支就是把dev指针给删掉,删掉后,我们就剩下了一条master分支,HEAD又指向了master
摘自 廖雪峰的官方网站,图文并茂,非常清楚
## 基础知识
### 创建与切换分支:
#### 1、创建 develop 分支并切换:
git checkout -b develop
##### 这里 checkout -b 是复合命令,一个是创建,一个是切换:
创建分支的命令是 git branch develop
切换分支的命令是 git checkout develop
#### 2、创建完成后执行 git branch 可以查看所有本地分支:
$ git branch
* develop # 前面带星号的表示当前所在分支
master
1. 切换到被copy的分支(master),并且从远端拉取最新版本
$git checkout master
$git pull
## 从当前分支拉copy开发分支
### Step1:创建分支
git checkout -b dev
Switched to a new branch 'dev'
### Step2:把新建的分支push到远端
git push origin dev
### Step3:拉取远端分支
git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/ dev
经过验证,当前的分支并没有和本地分支关联,根据提示进行下一步:
### Step4:关联
git branch --set-upstream-to=origin/dev
注意:这里branch之后都是没有空格的,如果有空格则是错误命令
### Step5:再次拉取 验证
git pull
## 合并分支
### Step1:切换到开发分支并git pull更新本地
git checkout dev20190813
git pull
### Step2:切换到master并git pull更新本地
git checkout master
git pull
### Step3:合并dev到master
git merge dev20190813
git push origin master
## 删除远程分支
### Step1:查看远程分支
git branch -r
### Step2:删除远程
git branch -r -d origin/dev20190813
### Step3:删除指令push到远端
git push origin :dev20190813 #冒号一定要有