1. git 是版本控制工具。
github是网站,社交平台,开源项目,远程仓库。
github官网:https://github.com
github上创建组织,博客。
2. git 与svn 区别?
svn是集成式(版本控制库控制在中央处理);
git是分布式
3.git 工具
不同系统,方式不同
windows系统中有两种模式:可视化、命令行(推荐)
git学习资源url:http://git.oschina.net/progit/
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
4.git的三个区
工作区:
暂存区(作为过渡层、避免误操作、保护工作区和版本区、分支处理) ;
版本区(库);
5.将已有的项目转换为git项目并托管到github仓库上
- 进入到项目所在目录,打开GIT BASH.
- 初始化项目:git init
- 将所有文件放进暂存区:git add .(或者git add 某个文件)
- 查看文件状态:git status
- 将添加(暂存区)的文件提交到本地仓库里:git commit -m “提交内容描述”
- 将本地仓库关联到远程仓库:git remote add origin
- 可运行git remote -v 查看结果
- 提交代码到GitHub仓库: git push origin 远程仓库分支名(git push origin master)
- 查看提交记录:git log
7.解决冲突;
6.git命令
注:以下命令都在项目目录下的git bush here 命令窗口中执行
1)创建仓库(repository),在码云或github上新建项目,添加自动生成README.md 文件。
本地下载代码:git clone [url]
如:git clone https://gitee.com/MoFan0925/blog2.git
2) 设置贡献者
创建命令: git config --global user.name ( 如:git config --global user.name "MoFan0925" )
git config --global user.email ( 如:git config --global user.email "313161875@QQ.com")
查看命令: git config --global user.name (查找所有的name信息)
git config --global user.email (查找所有的email信息)
git config --list (查看所有配置项)
3)常用命令
git status : 查看转态
git add <file.name> :添加指定文件去暂存区 git add text.js
git add . 添加所有change文件去暂存区
git commit -m "description" 提交缓存区代码到本地版本区
git commit -a -m "description" 添加和提交合体简写
git log 查看操作日志(按enter键可加载更多信息, 按Q键退出log键面)
git remote -v 查看远程仓库信息
git remote add origin(默认名字)url 修改远程名字和绑定url
git push origin master 同步代码到github或者码云网上仓库
4) 对比命令
git diff 工作区与暂存区对比
git diff --cached/ git diff --staged 暂存区与版本区对比
git diff master 工作区与版本区对比
5) 撤销命令
git reset HEAD <file.name> 从暂存区撤回工作区 (如:git reset HEAD drag.js )
git checkout -- <file.name> 工作区撤回到最新的版本区的状态
git commit --amend 漏交文件时,先撤回上一次提交的再一块提交(如:git commit -m “change3 drag.js and demo1.html”--amend)
6)删除命令
git rm <file.name> 工作区文件被删除或者丢失时,删除对应的暂存区的文件
git rm -f <file.name> 工作区文件存在,工作区和暂存区都删除。
git rm --cached <file.name> 工作区文件保留,暂存区被删除
7)恢复命令
git checkout commit_id <file.name> 恢复本地文件到指定版本上(如:git checkout a7e8623bd12 drag.js)
git reset --hard commit_id 恢复本地所有文件(整个版本)到指定Id版本文件上(如:git reset --hard a7e8623bd12)
git reset --hard HEAD^ 回到上一次操作处
git reset --hard HEAD~2 回到上2次操作处
git reflog 撤回回到上次操作命令
8) 多人协作解决冲突
git fetch 拉取代码不合并代码
Git diff master origin/master 工作区与版本区对比
Git merge orgin/master 默置代码
git pull 拉取并且自动合并代码
9)git分支命令
git branch 查看分支
git branch <file.name> 创建分支 (如:git branch new1)
git checkout <file.name> 切换分支(如:git checkout new1)
git checkout -b <file.name> 创建分支并且切换到新分支上(如:git checkout -b new2)
git merge <file.name> 在主支模式下执行,将分支合并到主支(如:git merge new1)
给那个分支提交代码,先切换到对应分支模式下:git commit -a -m “change drag.js from new2”
git branch --merged 查找已合并的分支
git branch --no-merged 查找没有合并的分支
git branch -d <file.name> 删除已经合并的分支,没有合并的不能删除(如:git branch -d new1)
git branch -D <file.name> 强制删除没有合并的分支(如:git branch -D new2)
分支之间提交时产生冲突,需手动解决。
10)git标签/release发布版本
git tag <version.name>release发布版本 如:git tag v1.0
git push origin v1.0 同步到远程库上
11)开源项目协作
fork 开源项目
pull request 合并分支代码/管理审核代码