[关闭]
@Sakura-W 2018-02-01T02:18:03.000000Z 字数 2917 阅读 1544

git 与 github

前端工具

一、Git 基础

安装
windows下到这个网站Git for Windows下载最新的git版本,按默认选项安装即可,安装完成后,在开始菜单里找到Git->Git Bash,点击后弹出命令行窗口,说明安装成功了。

关联Github账号

  1. $ git config --global user.name "Your Name"
  2. $ git config --global user.email "email@example.com"

Git 工作区域
工作目录、暂存区域以及 Git 仓库
平时看到的目录就是工作目录,通过git add把文件添加到暂存区域,通过git commit 把文件添加到Git仓库。

Git 中文件的状态

  1. 1untracked files: 新添加的文件,之前的快照中没有这些文件,Git不会跟踪该文件
  2. 2changes to be committed: 文件已被跟踪,处于暂存区域。
  3. 3changes not staged for commit: 已跟踪的文件内容发生了变化,但还没有放到暂存区

忽略文件
一般有些文件不需要纳入Git的管理,也不希望它们出现在未跟踪文件列表,可以创建一个.gitignore文件,列出要忽略的文件模式。

分析文件差异

  1. git status:简单地比较
  2. git diff:较详细
  3. git diff --staged(cached):最详细

删除文件

  1. git rm readme.md

查看历史提交

  1. git log
  2. git log --stat//查看提交的简略统计信息

撤销操作

  1. git reset HEAD readme.md//取消暂存readme.md文件

二、仓库管理

创建本地仓库
1)新建文件夹

2)调用git bash,输入

  1. git init//即可将本地文件夹初始化为git仓库

3)添加文件到缓存区(git只能监控文本文件,不能监控图片与视屏等)

  1. git add readme.MD//如果在git文件夹中新建了readme.MD文件
  2. git add --all//将文件夹中所有文件添加到缓存区

4)添加文件到本地仓库

  1. git commit -m "xxx"//xxx指提交的信息,比如"bug fix"

添加远程仓库
1)创建远程仓库(名字最好与本地仓库一致)

  1. github上新建repository,复制仓库的地址

2)关联本地仓库与远程仓库

  1. git remote add origin "your repository's address"//远程库名字一般都是origin

3)本地新建分支与远程分支相关联

  1. //本地debug分支与远程debug分支关联,前提是master分支已与远程仓库关联
  2. git branch --set-upstream debug origin/debug

4)文件同步

  1. git push -u origin master//第一次推送
  2. git push origin master//后面推送 git push remote-name branch即可
  3. git pull//从远程仓库拉取文件(会直接覆盖本地文件,慎用!)
  4. git clone "your repository's address"//克隆远程仓库到本地
  5. git fetch//下载最新文件,但不直接合并,然后可以自己git merge合并

5)文件清除

  1. // 清除 untracked files
  2. git clean -fdx
  3. f - force
  4. -d - directories too
  5. -x - remove ignored files too ( don't use this if you don't want to remove ignored files)
  6. // 清除 files to be committed
  7. git checkout -- .

三、分支管理

Git的分支,其实本质上仅仅是指向提交对象的可变指针。master 分支并不是一个特殊的分支,它跟其他分支完全没有区别。

在进行提交操作时,Gi t会创建一个提交对象,它包含一个指向这个树对象(项目根目录)的指针。

Git 中 HEAD 指针指向当前分支.HEAD指针会随着当前分支移动。

创建与合并分支

  1. git checkout -b dev//创建dev分支,并且切换到dev分支
  2. git branch dev//创建dev分支
  3. git checkout dev//切换到dev分支
  4. git branch//查看分支
  5. git merge dev//合并分支(此时是快速合并,直接使master指向dev的当前提交)
  6. git branch -d dev//删除dev分支
  7. git branch -D dev//删除尚未合并的dev分支
  8. // 删除远程分支
  9. git push [远程名] :[分支名]

解决冲突

  1. dev分支与master分支都有更新,且更新不一样时会产生冲突,这是需要手动解决冲突,然后再合并分支(冲突直接显示在相关文件里)

本地与远程更新不同时也会有冲突,也需要手动解决冲突

分支管理策略

  1. git merge -m "xxx" --no-ff//保留分支信息,dev仍然指向dev分支

多人协作

  1. 1.首先,通过git push origin "branch-name"推送自己的修改
  2. 2.如果推送失败,则是因为远程分支比你的本地更新,需要通过git pull试图合并
  3. 3.如果合并有冲突,则手动解决冲突,并在本地提交
  4. 4.解决冲突后,在push提交
  5. git remote -v //查看远程库信息
  6. git checkout -b "branch-name" origin/"branch-name"
  7. //在本地创建于远程分支对应的分支
  8. git branch --set-upstream branch-name origin/branch-name
  9. //建立本地 分支与远程分支的关联
  10. git push origin dev//将本地dev分支推到远程dev分支

修改分支名称

  1. git branch -m oldName newName

如果已推送到远程,则先删除远程分支,在将修改名称之后的分支推送上去。

分支开发工作流
1)长期分支:如master上保留完全稳定的代码,可能仅仅是已经发布或即将发布的代码
2)特性分支:短期分支,一般用于解决特定的问题,解决完之后删除

分支备注信息
由于分支命名方式是feature/{project name}-{gira id} 这种形式,分支名无法很好的表示其内容,因此需要为分支添加备注信息以直观的显示其内容。

添加备注信息:
git branch --edit-description

查看分支备注信息:

  1. // 首先安装 git-br 工具
  2. npm install -g git-br
  3. // 运行 git br 命令显示分支及备注信息
  4. git br

结果如下:

  1. develop/2017-10-09
  2. feature/BXK-810 "微信录音被系统打断时,要提示用户录音中断"
  3. feature/BXK-889 "课程介绍页、直播间主讲页、个人中心页添加直播间入口及相关信息"
  4. * feature/BXK-989 "将 static.mama.cn 的稳定代码迁移到 static-src.mama.cn 仓库"
  5. feature/FE-484
  6. master

四、常用命令

清除工作区的文件(unstaged files)

  1. // 指定文件
  2. git checkout readme.md
  3. // 所有文件
  4. git checkout -- .
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注