Git是目前项目中常用的版本管理工具, 当开发者只有一个人的时候基本用不到分支管理,但是当多个开发者协同工作时,分支管理就显得非常重要了。
分支管理首先可以让你在不影响现有版本的情况下开发新功能,还可以在不影响使用的情况下修复bug。
下面就说说,常用的分支相关的命令。
git branch -a 用于查看所有的分支(包括服务器端和本地分支),其中前面带星号 * 的表示工作在当前分支上
git branch 仅查看的是本地分支
git branch -v 查看每一个分支的最后一次提交
git branch 分支名 创建一个本地分支(仅仅是创建,并不会切换到创建的分支上)
git checkout 分支名 切换到该分支上。切换分支需注意:一定要注意你工作目录里的文件会被改变。 如果是切换到一个较旧的分支,你的工作目录会恢复到该分支最后一次提交时的样子。 如果 Git 不能干净利落地完成这个任务,它将禁止切换分支。
git checkout -b test 创建 test 分支,并切换到 test 分支
git merge test 合并test分支,此时一定要先切换到你要merge的分支上
git branch -d test 删除test分支,当你将test分支合并到主分支之后,test分支已经没有用了,此时可以使用此命令删除掉。如果该分支有未合并的工作 删除时会失败,-d --> -D 会强行删除。
当你分支太多导致不清楚那个合并,那个未合并时,可以通过
git branch --merged 来查看已经合并的分支,
git branch --no-merged 来查看未合并的分支
git ls-remote 可以显式地获得远程引用的完整列表
git remote add 添加一个新的远程仓库引用到当前的项目
git fetch 从服务器上抓取本地没有的数据时,它并不会修改工作目录中的内容。 它只会获取数据然后让你自己合并。
git pull 在大多数情况下它的含义是一个 git fetch
紧接着一个 git merge
命令。
如果有一个像之前章节中演示的设置好的跟踪分支,不管它是显式地设置还是通过 clone
或 checkout
命令为你创建的,
git pull
都会查找当前分支所跟踪的服务器与分支,从服务器上抓取数据然后尝试合并入那个远程分支。
git diff 查看本地资源和远程资源的差别。
Git 经常有一些命令的组合用法。
在本地:
git checkout -b dev 新建并切换到本地dev分支
git pull origin dev 本地分支与远程分支相关联
在本地新建分支并推送到远程
git checkout -b test
git push origin test 这样远程仓库中也就创建了一个test分支
关于 gitignore 文件,如果是先上传了一部分,然后才配置的 ignore 文件,则不会生效。
需要如下操作:
git rm -r --cached .
git add .
git commit -m "update .gitignore"
例如:
创建 uniAPP项目,最开始将 unpackage 文件夹也上传了,然后才添加的 .gitignore 文件。此时是不会生效的。
因为 当你在git库中编写某些代码文件,并已经stage该文件之后,你发现某个文件你不想用了,想在以后的改变中忽略它。然后你再你的.gitignore文件中加入该文件名,结果它并没有被忽略。
**.gitignore文件只是ignore没有被staged(cached)文件,对于已经被staged文件,加入ignore文件时一定要先从staged移除。
所以需要:
git rm -r --cached unpackage/
git add .
git commit -m "xxxxx"