一、git
1、下载Git-2.12.0-64-bit.exe,并安装(如果是绿色版本,需要配置环境变量);
2、如果需要使用图形化GUI,则可以下载SourceTreeSetup_1.6.14.exe,安装即可(如果是win7或者更低的操作系统,需要提前安装.net )
3、git的原来和使用入口
1)原理:本地的文件版本管理,不需要服务器
2)使用入口:在需要使用版本管理的文件夹内,打开命令窗口,使用git init。就会在该文件夹中生成一个.git的隐藏文件夹,该文件夹可以进行版本控制和管理
3)如果对已经生成.git文件夹进行移动,则不影响版本控制对该文件夹的管理
4、git的常用命令
1)查看git安装的版本,git -version
2)初始化(生成.git),git init
3)查看管理状态,git status
4)添加文件跟踪,git add <文件全路径>,一般在版本控制根文件夹内使用git add .或者直接使用git add --all把全部的文件添加跟踪
5)添加本地的一个忽略清单,在需要版本控制的 根 文件夹内新建一个名为.gitignore的文件(用于说明哪些文件需要忽略添加到跟踪清单)。使用方法:直接写入需要忽略的文件或者文件夹名称。所有在版本控制内的该名称就会被忽略。如果有重名情况,一个需要被忽略,一个不需要。则需要加上被忽略的文件的相对于版本控制根目录的相对路径(可以使用subline新建)。ps:新建的.gitignore文件需要在跟目录下,否则不起作用
6)git status -s //输出简要的变更日志
7)git commit -m '第一次提交代码' //把当前文件的变更状态保存到.git中,作为追溯的副本,-m后面跟版本说明。ps:高版本的git需要在提交前设置邮箱和用户名git config --global user.email "you@example.com"
git config --global user.name "Your Name"
8)git diff //显示修改(增加删除)了哪些内容
9)git log //显示具体的修改日志
10)git reset --hard 14be71 //回滚到某个版本。其中14be71是某个版本的hash前6位
二、github
1、git和github的区别
1)git不需要服务器,可以在本地创建版本控制管理。但是无法进行团队的协同开发
2)github就是一个网站,提供git服务
3)git是一个工具,github是一个网站
2、github官网:https://github.com/
3、 github的使用:
(上传代码)
1)创建一个仓库
2)使用Git Bash切换到本地的管理文件夹
3)使用git remote add origin https://github.com/huangyingxian/git-demo.git上传文件到仓库中
4)获取详细远端的地址:git remote -v
5)把本地的资源推送到远端服务器:git push -u origin master
6)接着输入上传到的仓库的用户名和密码即可
(下载代码)
1)git pull origin master即可下载最新的内容
(gist代码片段)
1)https://gist.github.com/1可以创建一些小的功能代码片段
2)上传到gist后可以点击copy to clipboard复制该代码片段引入到自己博客等
3)搜索更加具体有效,在gist下的搜索框中搜索关键词可以搜索出代码片段
三、git分支管理
1、git相关命令
1)git branch//查看分支情况
2)git branch v2//创建一个v2分支
3)git checkout v2//切换到v2分支
4)git push -u origin v2 //上传分支到github仓库,这里同样需要输入github用户名和密码
2、github网页托管
1)git clone https://github.com/huangyingxian/git-demo.git . //可以克隆github上的项目到本地
2)上传需要托管的静态文件到新建github仓库中
3)创建一个分支:git branch gh-pages
4)切换到gh-pages分支:git checkout gh-pages
5)上传gh-pages分支到github:git push -u origin gh-pages
6)托管后的静态网站地址:huangyingxian.github.io/wjs//huangyingxian是本人github的id,wjs是仓库名称(区分大小写)
7)托管的页面可以设置自己的域名,方法如下:
1、在需要托管的跟目录下创建CNAME文件(无扩展名)
2、在CNAME文件中输入一个域名如wjs.yingxianh.com
3、在https://www.dnspod.cn/中添加域名解析,选择cname方式
4、把添加了CNAME文件的本地文件更新到github中
5、便可以通过wjs.yingxianh.com访问
8)hexo工具的使用
最近公司使用git,于是重新学习可以git使用,以下是学习的时候整理出来的笔记,记录一下:
git status
git log
git log --oneline
git add <file>
git commit -m <mes..>
git config --list
git config --global user.name <name>
git config --global user.email <492753097@qq.com>
git commit --amend 取消上一次的提交,并提交本次的暂存区的内容
(同时可以使用本命令对版本描述的提交)
git checkout -- <文件名> 把暂存区内容 回滚到工作区
git reset HEAD <文件名> 把版本库上一次提交内容 回滚暂存区
git reset <id> <文件名> 把版本库中的某个版本某个文件 回滚到 暂存区
git rm --cached <文件名> 删除 暂存区 的文件,不删除工作区
git rm -f <文件名> 删除 暂存区 的文件,且删除工作区(或者不要-f,默认)
git mv <文件名1> <文件名2> 把文件名1 改为 文件名 2;
git branch 查看分支列表
git branch <分支名称> 创建新分支
git checkout <分支名称> 切换到的分支
git branch -d <分支名称> 删除分支
git branch -m <原分支><后分支> 修改分支名称
git checkout -b <分支名> 创建分支且切换到该分支上
git merge <需要合并的分支名称> 合并分支到当前分支上
处理冲突后,再次执行 git commit -am '备注信息';即可
git diff 比较工作区与暂存区 的差异
git diff --staged 比较暂存区与版本库之间的差异
git diff <版本1><版本2> 比较同一个分支内不同版本之间的差异
git diff <分支名> 比较不同分支的差异
git stash 把工作区中的修改暂存到暂存区(在工作区有变动,且需要切换分支时使用)
git stash list 查看封存列表
git stash apply stash@{0} 把暂存区的修改拉回工作区中(不删除)
git stash pop stash@{0} 把暂存区的修改拉回工作区中(删除)
git stasg drop stash@{0} 删除封存区的内容
git push 远程仓库的地址 远程仓库的分支名
ssh-keygen 生产ssh连接密钥
git remote add <别名> <远程仓库地址> 为远程仓库起别名
git remote -v 查看远程仓库的列表
git pull <远程仓库地址>/<别名> <远程仓库分支> 拉取远程仓库的代码并合并
git init --bare 创建一个裸露的仓库
git merge 远程仓库别名/需要合并的本地仓库的名称 合并仓库
git fetch <远程仓库别名> <远程仓库的分支名> 刷新远程仓库代码到本地内存
git diff 远程仓库别名/当前本地仓库分支名 对比远程与本地的区别
git merge 远程仓库别名/需要合并的本地仓库的名称 合并仓库
此三句等效于
把 git pull <远程仓库名><分支名>