致谢
前言
- 自己是git新手,在本地没有分支的时候不知道怎么拉取(从别的电脑push的)远程分支,完全没办法,只好删除整个文件夹重新clone,后来到网上好好学了学,总算知道了。
- 这里重点介绍一下本地没有该分支,需要到远程拉取该分支的方法
目录
本地没有的时候拉取远程分支
错误做法
1 | git branch link-rosforlv |
因为,这样建立的branch是以master为基础建立的,再pull下来的话,会和master的内容进行合并,有可能会发生冲突
正确用法
用
branch -a```查看包括远程分支在内的所有分支: 1
2
3
4
5
* 使用```checkout```命令来把远程分支取到本地,并自动建立tracking
``` shell
git checkout -b link-rosforlv origin/link-rosforlv或者使用-t参数,它默认会在本地建立一个和远程分支名字一样的分支
1 | git checkout -t origin/link-rosforlv |
- 也可以使用fetch来做:
git fetch origin link-rosforlv:link-rosforlv
不过通过fetch命令来建立的本地分支不是一个track branch,而且成功后不会自动切换到该分支上
结语
- 学完之后才发现有这么多种方法可以做到这些,瞬觉自己才疏学浅,惭愧惭愧。
误在master上做开发
- git stash 可以暂时将当前修改压入git stack栈中,在checkout 到其他分支后再从栈中压出来
1 | # on master |
git submodule
合并一个分支的特定commits
合并一个分支的一个重要commit
- 比如,feature 分支上的commit 62ecb3 非常重要,它含有一个bug的修改,或其他人想访问的内容。无论什么原因,你现在只需要将62ecb3 合并到master,而不合并feature上的其他commits,所以我们用git cherry-pick命令来做:
1 | git checkout master |