分支这块一只都懵懵懂懂的,太不爽了今天彻底整理好。
【本地新建】
A 从远程clone到本地
1. 新建文件夹
2. 打开终端进入文件夹 $ git init
3. $ git clone @""
B 本地已经存在,添加到Git
1. 新建文件夹
2. 打开终端进入文件夹$ git init
3.$ git add 47-demo4.$ git commit -am "1"
5.$ git branch
6.$ git checkout -b dev
【常用命令】
git brnach 查看分支
git branch dev 创建分支
git checkout dev 切换分支
git branch -D dev 删除分支
git checkout -b dev创建并跳转到分支
当前正在进行的工作, 比如想pull 最新代码, 又不想加新commit, 或者另外一种情况,为了fix 一个紧急的bug, 先stash, 使返回到自己上一个commit, 改完bug之后再stash pop, 继续原来的工作。
基础命令:
$git stash
$git stash pop
【提交合并使用】
----- 前提是主分支是 远程mster情况下
假设我们在本地分支Dev里面完成功能。
a.切换到本地主分支,
b.检查远程分支是否有更新
1.无更新的话,合并分支到主分支然后push
2.有更新,
c.push
$ git branch
$ git status
$ git add -a
$ git commit -m "修改了XX部分"
$ git status
$ git checkout master
$ git branch
$ git status
$ git pull origin master
$ git status
$ git merge dev
$ git push origin mster
------------远程分支管理
查看所有分支 git branch -a
查看所有远程分支 git branch -r
新建远程分支 git push origin test
删除远程分支 git push origin --delete test / git push origin :test
切换到远程分支并在创建本地相关联的分支 格式: git checkout -b [本地分支名] [远程主机名]/[远程分支名]
git checkout -b test origin/test 本地分支名远程分支名要一致
push代码到远程分支 git push origin test test是你远程分支的名字, 本地分支名远程分支名要一致
------------合并分支遇到冲突
如果你在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,Git 就没法干净的合并它们。比如内容更新 或者 文件删除在新增同名文件。
【知识科普】
假设你们团队有个地址为 git.ourcompany.com
的 Git 服务器。如果你从这里克隆,Git 会自动为你将此远程仓库命名为origin
,并下载其中所有的数据,建立一个指向它的master
分支 的指针,在本地命名为origin/master
,但你无法在 本地更改其数据。接着,Git 建立一个属于你自己的本地master
分支,始于origin
上master
分支相同的位置,你可以就此开始工作
一次Git 克隆 会建立你自己的 本地分支master 和 远程分支origin/master,它们都指向 origin/master 分支的 最后一次提交。
如果你在本地 master
分支做了些改动,与此同时,其他人向 git.ourcompany.com
推送了他们的更新,那么服务器上的 master
分支就会向前推进,而于此同时,你在本地的提交历史正朝向不同方向发展。不过只要你不和服务器通讯,你的origin/master
指针仍然保持原位不会移动