Git
什么是 Git?
Git 是一款源代码管理工具 (版本控制工具)
我们写的代码需要使用 Git 进行管理.
源代码有必要管理起吗?
- 1.0
- 2.0 //
- SVN,vss,vcs.... Git
有必要, 因为人工的去处理不同的版本, 做相应备份会很麻烦.
Git 是 Linux 之父当年为了维护 Linux---linus 之前也是手动维护合并把文件发给 Linus
linus 自己写了一个版本管理的工具 (Git)
Git 安装
初始化 Git 仓储 /(仓库)
这个仓库会存放, Git 对我们项目代码进行备份的文件
在项目目录右键打开 Git bash
命令: Git init
自报家门
就是在 Git 中设置当前使用的用户是谁
每一次备份都会把当前备份者的信息存储起来
命令:
配置用户名: Git config --global user.name "xiaoming"
配置邮箱: Git config --global user.email "xm@sina.com"
把大象放到冰箱要几步
打开冰箱门
放大象
关上冰箱
把代码存储到. Git 仓储中
1. 把代码放到仓储的门口
Git add ./readme.md 所指定的文件放到大门口
Git add ./ 把所有的修改的文件添加到大门口
2. 把仓储门口的代码放到里面的房间中去
Git commit -m "这是对这次添加的东西的说明"
可以一次性把我们修改的代码放到房间里 (版本库)
Git commit --all -m "一些说明"
--all 表示是把所有修改的文件提交到版本库
查看当前的状态
可以用来查看当前代码有没有被放到仓储中去
命令: Git status
Git 中的忽略文件
.gitignore, 在这个文件中可以设置要被忽略的文件或者目录.
被忽略的文件不会被提交仓储里去.
在. gitignore 中可以书写要被忽略的文件的路径, 以 / 开头, 一行写一个路径, 这些路径所对应的文件都会被忽略, 不会被提交到仓储中
写法
/.idea 会忽略. idea 文件
/JS 会忽略 JS 目录里的所有文件
/JS/*.JS 会忽略 JS 目录下所有 JS 文件
查看日志
Git log 查看历史提交的日志
Git log --oneline 可以看到简洁版的日志
回退到指定的版本
Git reset --hard Head~0
表示回退到上一次代码提交时的状态
Git reset --hard Head~1
表示回退到上上次代码提交时的状态
Git reset --hard [版本号]
可以通过版本号精确的回退到某一次提交时的状态
Git reflog
可以看到每一次切换版本的记录: 可以看到所有提交的版本号
分支
默认是有一个主分支 master
创建分支
Git branch dev
创建了一个 dev 分支
在刚创建时 dev 分支里的东西和 master 分支里的东西是一样的
切换分支
Git checkout dev
切换到指定的分支, 这里的切换到名为 dev 的分支 Git branch 可以查看当前有哪些分支
合并分支
Git merge dev
合并分支内容, 把当前分支与指定的分支 (dev), 进行合并
当前分支指的是 Git branch 命令输出的前面有 * 号的分支
合并时如果有冲突, 需要手动去处理, 处理后还需要再提交一次.
- GitHub
- https://github.com
不是 Git, 只是一个网站
只不过这个网站提供了允许别通过 Git 上传代码的功能
提交代码到 GitHub(当作 Git 服务器来用)
Git push [地址] master
示例: Git push https://github.com/huoqishi/test112.git master master
会把当前分支的内容上传到远程的 master 分支上
Git pull [地址] master
示例: Git pull https://github.com/huoqishi/test112.git master
会把远程分支的数据得到:(注意本地 - 要初始一个仓储!)
Git clone [地址]
会得到远程仓储相同的数据, 如果多次执行会覆盖本地内容.
来源: http://www.jianshu.com/p/1bb47d0f9aee