1.全局安装git
Linux
sudo apt-get install git (适用于Debian或Ubuntu Linux)
sudo apt-get install git-core (适用于老一点的Debian或Ubuntu Linux)
对于其他Linux版本,先从Git官网下载Git ,官方地址为:https://git-scm.com/download/,下载源码,然后解压,依次输入:./config,make,sudo make install这几个命令安装Mac OS
方法1:安装homebrew,然后通过homebrew安装Git,具体方法请参考homebrew的文档:http://brew.sh/。
方法2:更简单,也是推荐的方法,就是直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。Windows
在Windows上使用Git,可以从Git官网直接下载安装程序,(网速慢的同学请移步国内镜像),然后按默认选项安装即可。
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
配置信息
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
2.git常用指令:
git 克隆项目到指定目录
git clone 需要克隆的地址 指定的路径和文件夹名称(此文件夹必须为空,否则无法自动创建)
例如:git clone https://github.com/chenhuiYj/ec-dialog.git project-test/ec-dialog
git 初始化仓库
git init
git 指定要添加到本地仓库的文件(预备提交)
git add 文件名带后缀 (预备提交指定文件)
git add . (代表预备提交全部)
git add *.后缀名 (代表预备提交符合该后缀的文件)
git 查看提交状态
git status
会告诉你哪些文件是预备提交到本地仓库的,哪些文件是被修改/创建过还没有预备提交到本地仓库
git 删除预备提交的文件
git rm --cached 文件名带后缀
预备提交后再用git status查看状态显示该文件还没有预备提交
git 忽略预备提交的文件
方法1.创建一个 .gitignore配置文件
里面写上你要忽略的文件,例如:
123.txt (忽略当前目录下123.txt 文件)
/dir1 (忽略dir1的文件夹)
/dir1/index.js (忽略dir1文件夹下的index.js文件)
保存后 git add .gitignore 这时候配置文件才会生效
这时候我们假如修改了123.txt的内容
再用 git status 查看状态并不会显示该123.txt文件是否预提交的状态,说明文件配置生效,已经忽略了该文件
注:这里有个坑需要注意下:设置后可能配置并不生效,是因为.gitignore只能忽略那些原来没有被追踪的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。即你所忽略的文件是没有被提交过的,那么如果还想忽略怎么办?
执行以下命令配置文件生效 :
git rm -r --cached . ;
git add . ;
git commit -m “update gitignore“
git 把预备提交的文件提交到git仓库
git commit -m "你对此次提交操作的备注"
git 创建项目分支
git branch "你的项目分支名称"
git 进入项目分支
git checkout "你创建过的项目分支名称"
git 进入项目主线
git checkout master
git 合并项目分支到主线
git checkout master //进入主线
git merge “你创建过的项目分支名称”
注:分支的概念
分支是用来标记特定代码的提交,每一个分支通过SHA1sum值来标识,所以对分支的操作是轻量级的,你改变的仅仅是SHA1sum值。
如下图所示,当前有2个分支,A,C,E属于master分支,而A,B,D,F属于dev分支。
它们的head指针分别指向E和F,对上述做如下操作:
git checkout master //选择or切换到master分支
git merge dev //将dev分支合并到当前分支(master)中
合并完成后:
现在ABCDEFG属于master,G是一次合并后的结果,是将E和F的代码合并后的结果,可能会出现冲突。而ABDF依然属于dev分支。可以继续在dev的分支上进行开发:
git 分支的基本操作:
git branch //查看本地所有分支
git branch -r //查看远程所有分支
git branch -a //查看本地和远程的所有分支
git branch <branchname> //新建分支
git branch -d <branchname> //删除本地分支
git branch -d -r <branchname> //删除远程分支,删除后还需推送到服务器
git push origin:<branchname> //删除后推送至服务器
git branch -m <oldbranch> <newbranch> //重命名本地分支/**
*重命名远程分支:
*1、删除远程待修改分支
*2、push本地新分支到远程服务器
*/
//git中一些选项解释:
-d
--delete:删除
-D
--delete --force的快捷键
-f
--force:强制
-m
--move:移动或重命名
-M
--move --force的快捷键
-r
--remote:远程
-a
--all:所有
git fetch 用法
$ git fetch <远程主机名> //这个命令将某个远程主机的更新全部取回本地
如果只想取回特定分支的更新,可以指定分支名:
$ git fetch <远程主机名> <分支名> //注意之间有空格
最常见的命令如取回origin
主机的master
分支:
$ git fetch origin master
取回更新后,会返回一个FETCH_HEAD
,指的是某个branch在服务器上的最新状态,我们可以在本地通过它查看刚取回的更新信息:
$ git log -p FETCH_HEAD
如图:
可以看到返回的信息包括更新的文件名,更新的作者和时间,以及更新的代码(19行红色[删除]和绿色[新增]部分)。
我们可以通过这些信息来判断是否产生冲突,以确定是否将更新merge到当前分支。
git pull 用法
前面提到,git pull 的过程可以理解为:
git fetch origin master //从远程主机的master分支拉取最新内容
git merge FETCH_HEAD //将拉取下来的最新内容合并到当前所在的分支中
即将远程主机的某个分支的更新取回,并与本地指定的分支合并,完整格式可表示为:
$ git pull <远程主机名> <远程分支名>:<本地分支名>
如果远程分支是与当前分支合并,则冒号后面的部分可以省略:
$ git pull origin next
git fetch和git pull的区别
(1)git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
(2)git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。
3.git远程仓库GitHub使用:
流程原理图:
git 创建远程仓库
1、登陆、注册gitHub
2、点击这里创建新的远程仓库
3.设置远程仓库信息
git 初始化仓库
git init
git 清除旧的远程仓库连接
git remote rm origin
git 连接远程仓库
git remote add origin https://github.com/XXXX/XXXXX.git
会提示你输入账号密码,输入后可成功连接,成功连接后下次只要.git文件夹不删除不再需要重新连接
git 上传代码到远程仓库
git push -u origin master //上传主线代码
git push -u origin “分支名称” //上传分支代码
代码上传成功后,在github相关目录下会有你上传的文件
git 创建可以显示静态文件的个人主页仓库
仓库名称格式:username.github.io 注意与你的用户名一致
以上方法创建后,上传静态文件到该仓库用创建的这个地址访问底下的文件即可