目录
一、Git基础
1.Git与Github
2.注册Github账号并安装Git
二、Git的使用
1.本地仓库
进行全局配置:
创建仓库:
Git常用操作指令:
版本回退:
2.远程仓库
两种常规使用方式:
分支管理:
冲突的产生与解决:
三、Git实用技能
1.图形管理工具
2.忽略文件操作
一、Git基础
1.Git与Github
Git是一个分布式版本控制系统,简单地说就是一个软件,用于记录一个或若干文件内容变化,以便查阅特定版本修订情况的软件。
Github是一个为用户提供Git服务的网站,简单来说就是一个可以存放东西的地方;Github除了提供管理Git的web界面外,还提供了订阅、关注、讨论组、在线编辑器等丰富的功能。
2.注册Github账号并安装Git
打开官网https://github.com/,点击sign up注册
打开官网https://git-scm.com/,点击download选择对应的系统下载安装包,双击安装,默认选项一直点next即可,完成后右击桌面显示Git GUI Here和Git Bash Here选项即安装成功。
二、Git的使用
1.本地仓库
Git本地操作的三个区域:
Git Repository(Git仓库):最终确定的文件保存到仓库,成为一个新的版本并对他人可见;
暂存区:暂存已经修改的文件最后统一提交到Git仓库中;
工作区(Working Directory):添加、编辑、修改文件等动作。
进行全局配置:
桌面右键单击,打开Git Bash Here命令行窗口输入(Ctrl+c/v不管用,可以右键进行复制粘贴)
$git config --global user.name “用户名”
$git config --global user.email “邮箱地址”
可以输入$git config --global user.name和$git config --global user.email测试是否设置成功。
创建仓库:
注意:可以使用非空目录创建仓库,路径中避免出现中文。
a.新建文件夹,cd 目录名进入文件夹。
b.git init初始化,查看隐藏项目,多出.git文件夹。
Git常用操作指令:
查看当前状态:git status
添加至缓存区:git add 文件名
-如果一次添加多个文件,文件名用空格隔开
-git add. 表示添加当前目录到缓存区
提交至版本库:git commit -m “注释内容”
新建readme.txt
版本回退:
a.查看版本,确定需要回到的时间点(两个指令区别是查找后显示格式不一样)
git log
git log --pretty=oneline
b.回退操作
git reset --hard 版本号
c.回到过去之后,要想再回来需要输入指令git reflog查看历史操作,得到最新的git reflog,再通过回退操作回到指定版本
-此处可见,写指令时commit id(版本号)可以不用写全,git会自动识别,但不能写太少,建议至少写4位
2.远程仓库
此处以Github为例
登录后进入首页,点击Create repository,填写信息并创建
两种常规使用方式:
(1)基于http协议
新建一个文件夹(最好与Github上的同名),进入目录并使用“git clone 线上仓库地址”指令克隆线上仓库到本地,再cd进入目录
在仓库上做对应的操作(提交暂存区、提交本地仓库、提交线上仓库、拉取线上仓库):
本地操作的三个指令此处依旧适用,不同的是执行完后需要再执行git push提交到线上,如果这时弹出登录框则需要登录,如果出现403错误,则需要鉴权:
修改.git/config文件
将
[remote "origin"]
url = https://github.com/用户名/仓库名.git
修改为
[remote "origin"]
url = https://用户名:密码@github.com/用户名/仓库名.git
刷新浏览器,就能看见上传的内容了。
拉取线上仓库:git pull
(注意:上班git pull,下班git push)
(2)基于SSH协议
此方式的操作与http相同,只是对于用户身份的鉴权方式不同。
执行生成公私钥对指令(需安装OpenSSH):ssh-keygen -t rsa -C “注册邮箱”,生成客户端公私钥文件,打开对应路径的.pub文件并复制;
将公钥上传到Github,点击下图所示链接,将复制内容粘贴在key栏,填写title,提交后就可执行后续操作。
分支管理:
我们每次提交都会有记录,Git把它们串成时间线,形成类似于时间轴的东西,这个时间轴叫做master分支。开发时是多人合作,分支可以让每个人负责各自的模块,互不干扰。
相关指令:
查看分支(当前分支前会有小标记):git branch
创建分支:git branch 分支名
切换分支(上传文件,文件会存在当前分支上):git checkout 分支名
创建并切换分支:git checkout -b 分支名
删除分支(非当前所在分支):git branch -d 分支名
合并分支:git merge 被合并的分支名
冲突的产生与解决:
当你提交一次后,同事又进行提交,而你在没有git pull的情况下再次提交就会产生冲突。
解决:提交出错提示(e.g ‘git pull...’)before pushing again后先git pull,git会将线上与本地仓库的冲突合并到对应文件中;打开冲突文件,与同事协商修改后再次上传。
三、Git实用技能
1.图形管理工具
Github for Desktop、Source tree、TorToiseGit、右键单击桌面的Git GUI Here
2.忽略文件操作
项目目录下有很多不需要改动的文件,或是即便改动也不希望被提交的文件,我们可以使用“忽略文件”机制实现需求。新建一个.gitignore文件,用于声明规则,规则对当前目录及子目录生效(由于只有文件类型没有文件名,可以通过touch .gitignore命令创建)。
常用规则写法(注释以#开头):
忽略login文件夹:/login/
忽略所有.zip文件:*.zip
忽略某个具体文件:/login/index.js
不忽略某个具体文件:!index.js
(视频:B站黑马程序员)