@Sakura-W
2018-02-01T02:18:03.000000Z
字数 2917
阅读 1544
前端工具
安装
windows下到这个网站Git for Windows下载最新的git版本,按默认选项安装即可,安装完成后,在开始菜单里找到Git->Git Bash,点击后弹出命令行窗口,说明安装成功了。
关联Github账号
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
Git 工作区域
工作目录、暂存区域以及 Git 仓库
平时看到的目录就是工作目录,通过git add把文件添加到暂存区域,通过git commit 把文件添加到Git仓库。
Git 中文件的状态
1)untracked files: 新添加的文件,之前的快照中没有这些文件,Git不会跟踪该文件
2)changes to be committed: 文件已被跟踪,处于暂存区域。
3)changes not staged for commit: 已跟踪的文件内容发生了变化,但还没有放到暂存区
忽略文件
一般有些文件不需要纳入Git的管理,也不希望它们出现在未跟踪文件列表,可以创建一个.gitignore文件,列出要忽略的文件模式。
分析文件差异
git status:简单地比较
git diff:较详细
git diff --staged(cached):最详细
删除文件
git rm readme.md
查看历史提交
git log
git log --stat//查看提交的简略统计信息
撤销操作
git reset HEAD readme.md//取消暂存readme.md文件
创建本地仓库
1)新建文件夹
2)调用git bash
,输入
git init//即可将本地文件夹初始化为git仓库
3)添加文件到缓存区(git只能监控文本文件,不能监控图片与视屏等)
git add readme.MD//如果在git文件夹中新建了readme.MD文件
git add --all//将文件夹中所有文件添加到缓存区
4)添加文件到本地仓库
git commit -m "xxx"//xxx指提交的信息,比如"bug fix"
添加远程仓库
1)创建远程仓库(名字最好与本地仓库一致)
在github上新建repository,复制仓库的地址
2)关联本地仓库与远程仓库
git remote add origin "your repository's address"//远程库名字一般都是origin
3)本地新建分支与远程分支相关联
//本地debug分支与远程debug分支关联,前提是master分支已与远程仓库关联
git branch --set-upstream debug origin/debug
4)文件同步
git push -u origin master//第一次推送
git push origin master//后面推送 git push remote-name branch即可
git pull//从远程仓库拉取文件(会直接覆盖本地文件,慎用!)
git clone "your repository's address"//克隆远程仓库到本地
git fetch//下载最新文件,但不直接合并,然后可以自己git merge合并
5)文件清除
// 清除 untracked files
git clean -fdx
f - force
-d - directories too
-x - remove ignored files too ( don't use this if you don't want to remove ignored files)
// 清除 files to be committed
git checkout -- .
Git的分支,其实本质上仅仅是指向提交对象的可变指针。master 分支并不是一个特殊的分支,它跟其他分支完全没有区别。
在进行提交操作时,Gi t会创建一个提交对象,它包含一个指向这个树对象(项目根目录)的指针。
Git 中 HEAD 指针指向当前分支.HEAD
指针会随着当前分支移动。
创建与合并分支
git checkout -b dev//创建dev分支,并且切换到dev分支
git branch dev//创建dev分支
git checkout dev//切换到dev分支
git branch//查看分支
git merge dev//合并分支(此时是快速合并,直接使master指向dev的当前提交)
git branch -d dev//删除dev分支
git branch -D dev//删除尚未合并的dev分支
// 删除远程分支
git push [远程名] :[分支名]
解决冲突
当dev分支与master分支都有更新,且更新不一样时会产生冲突,这是需要手动解决冲突,然后再合并分支(冲突直接显示在相关文件里)
本地与远程更新不同时也会有冲突,也需要手动解决冲突
分支管理策略
git merge -m "xxx" --no-ff//保留分支信息,dev仍然指向dev分支
多人协作
1.首先,通过git push origin "branch-name"推送自己的修改
2.如果推送失败,则是因为远程分支比你的本地更新,需要通过git pull试图合并
3.如果合并有冲突,则手动解决冲突,并在本地提交
4.解决冲突后,在push提交
git remote -v //查看远程库信息
git checkout -b "branch-name" origin/"branch-name"
//在本地创建于远程分支对应的分支
git branch --set-upstream branch-name origin/branch-name
//建立本地 分支与远程分支的关联
git push origin dev//将本地dev分支推到远程dev分支
修改分支名称
git branch -m oldName newName
如果已推送到远程,则先删除远程分支,在将修改名称之后的分支推送上去。
分支开发工作流
1)长期分支:如master上保留完全稳定的代码,可能仅仅是已经发布或即将发布的代码
2)特性分支:短期分支,一般用于解决特定的问题,解决完之后删除
分支备注信息
由于分支命名方式是feature/{project name}-{gira id}
这种形式,分支名无法很好的表示其内容,因此需要为分支添加备注信息以直观的显示其内容。
添加备注信息:
git branch --edit-description
查看分支备注信息:
// 首先安装 git-br 工具
npm install -g git-br
// 运行 git br 命令显示分支及备注信息
git br
结果如下:
develop/2017-10-09
feature/BXK-810 "微信录音被系统打断时,要提示用户录音中断"
feature/BXK-889 "课程介绍页、直播间主讲页、个人中心页添加直播间入口及相关信息"
* feature/BXK-989 "将 static.mama.cn 的稳定代码迁移到 static-src.mama.cn 仓库"
feature/FE-484
master
清除工作区的文件(unstaged files)
// 指定文件
git checkout readme.md
// 所有文件
git checkout -- .