一、git与github
git是分布式版本控制系统,简单来说它就是一个软件,用于记录文件内容的变化,以便将来查阅特定版本修订的具体情况
github是一个为用户提供git服务的网站,简单来说是一个可以放代码的地方(当然他的功能也不仅仅如此)
二、git的配置与安装
git安装的话
除了注意安装位置外,其他的一路回车即可
配置的话
①、右键打开GIT Bash Here打开窗口或者双击git图标
/*使用对应github用户名与邮箱地址*/
git config --global user.name "用户名"
git config --global user.email "邮箱地址"
②创建仓库
因为我们需要用git来管理项目,所以要先创建仓库,且创建仓库使用的目录不一定是空目录,也可以是非空的,重要的是目录里面不要出现中文
/*创建空仓库(目录),也可以鼠标直接右键创建新文件夹*/
mkdir mygit
在创建好了仓库之后就使用命令行加入该项目目录里面
③、git仓库的初始化
/*告诉git需要管理的是哪一个目录*/
git init
三、git的使用–本地仓库
git本地操作的过程:
本地仓库常用指令:
查看当前状态: git status
添加到缓冲区: git add 文件名(添加一个文件)
git add 文件名1 文件名2 ……(添加多个文件)
git add .(添加当前目录下的文件)
提交到本地版本库: git commit -m “注释内容”
四、git的使用–远程仓库
HTTP
1.在命令行中,输入git init
,初始化
2.输入git add .
(不要漏了“.”),添加到本地缓存区
3.输入git commit -m "提示信息"
,提交到本地仓库
4.输入git remote add origin 项目地址
(git remote add origin 你自己的https地址),连接你的guthub仓库。
5.输入git push -u origin master
,上传项目到Github。这里会要求输入Github的账号密码,按要求输入就可以。
注意:
- 不过在使用git 对源代码进行push到gitHub时可能会出错,error: failed to push some refs to git。
- 原因可能是github中的README.md文件不在本地代码目录中。
可以通过如下命令进行github与本地代码合并
git pull --rebase origin master
- 执行上面代码后可以看到本地代码库中多了README.md文件。
- 重新执行之前的git push 命令,成功!
五、git的使用–版本回退
版本回退分为两个步骤:
①、查看版本,确定需要返回的起点
git log
git log --pretty=oneline
②、回退操作
git reset --hard 发布版本的id
但要注意一些东西:
如上图,比如我当前是版本3,如果当我回到了版本2的话,我再使用查看版本指令查看版本,此时的版本将不会有在它之后的版本(如版本3不会有,而版本1存在),所以想要回到版本3的时候需要使用指令去查看历史操作,以得到最新的commit id(至少需要前4位),在执行回退操作
git reflog // 后悔药,在恢复错了的情况下
六、github远程仓库的创建
创建仓库不太难,可自行google
基于http协议
①、创建新目录,并进入目录
②、使用clone指令克隆线上仓库到本地
git clone 线上仓库地址
③、对线上仓库的对应操作(提交暂存区、提交到本地仓库、提交到线上仓库、拉取线上仓库到本地)
/*提交暂存区*/
git add 文件名
/*提交到本地仓库*/
git commit -m "注释"
/*提交到线上仓库*/
git push
/*拉取线上仓库到本地*/
git pull
注意在提交线上仓库的时候,可能会报403错误(没有权限),所以需要先对其进行权限配置(因为笔者没有遇到,所以就不具体说明了,可自行google)
如果没有报错就会弹出来一个登陆界面,登陆即可
出现以下提示则表示提交到线上成功
出现以下提示则表示拉取线上仓库到本地成功
基于ssh协议
该方式与前面的https相比,只是影响github对于用户身份鉴权的方式,对git的具体操作(提交到服务器、拉去服务器到本地)没有任何影响
步骤:
①、打开提示
②、生成客户端公私钥文件
/*查看是否已经有了ssh密钥,没有弹出警告就说明已经有了密钥文件*/
cd ~/.ssh
/*生成密钥指令,使用github注册的邮箱,执行指令后一路回车即可*/
ssh-keygen -t rsa -C "注册邮箱"
密钥文件在C:\Users\administrators.ssh (默认路径)
会生成三个文件id_rsa、id_rsa.pub、known_hosts
id_rsa.pub里面的内容就是公钥
③、将公钥上传到github
点击添加公钥链接即可
title随便起,key里面就是公钥了,然后再点击添加ssh公钥即可
后续对仓库的操作就与先前相同了
七、git的分支操作
分支操作目的是为了实现多人开发互不影响
查看分支:git branch
创建分支:git branch 分支名
切换分支: git checkout 分支名
创建分支并切换到该分支内:git checkout -b 分支名
删除分支:git branch -d 分支名
合并分支:git merge 需要被合并的分支名
在使用合并分支的时候需要注意的是,要先进入某个分支(被和并到的那个分支)下,然后再使用合并分支指令合并分支
再删除某个分支的时候,需要先退出该分支,再删除该分支
最后在合并所有分支之后,需要将master分支提交到线上远程仓库里面
八、git的图形管理工具
①、github for desktop
②、source tree
③、tortoisegit
④、自带的GUI
鼠标右键打开Git GUI Here
九、忽略文件
忽略文件需要新建一个名为 .gitignore 的文件,该文件用于声明忽略文件或不忽略文件的规则,规则对当前目录及子目录生效
要注意的是该文件没有文件名,无法再Windows里面直接创建,但可以通过Git Bash命令行来touch创建
/mtk/: 过滤整个文件夹
*.zip: 过滤所有的.zip文件
/mtk/do.c: 过滤某个具体文件
!index.php: 不过滤具体的某个文件
忽略文件中 # 为注释
/*创建忽略文件*/
touch .gitignore
/*文件内容*/
/js/ /*忽略名为js的文件*/
十、在webstorm里面关于git版本控制的文件颜色
绿色,已经加入控制暂未提交
红色,未加入版本控制
蓝色,加入,已提交,有改动
白色,加入,已提交,无改动
灰色:版本控制已忽略文件。
本文只用于个人学习与记录