Git的创建使用
创建本地仓库
打开 git bush
输入git config --global user.name ‘用户名’ 创建用户名
输入git config --global user.name ‘邮箱’ 创建邮箱
创建空目录指令
mkdir pro_git
进入创建的项目目录
cd pro_git
git仓库的初始化
git init
执行之后会在项目目录下创建一个‘.git’目录
git常用指令
查看当前状态
git status
添加到缓存区
git add 文件名
语法1:(添加单个文件)
git add 文件名
语法2:添加多个文件
git add 文件名1 文件名2
语法3:(添加当前目录到缓存区中)
git add .
提交到版本库
git commit -m “注释内容”
每修改一次都需要重新执行git add 和 git commit-m
版本回退
1.查看历史版本
git log 显示日志
git log --pretty=oneline //推荐用此 一样代码一个时间点 看着舒服
2.指令返回
git reset --hard 提交编号 (黄色字体,commit)
查看历史操作,以执行上一步
回到过去后想再回到之前的最新版本,需要使用指令去查看历史操作,以得到最新的commit id
git reflog
两种使用方式
HTTP协议
1.创建空目录为.shop
2.进入该目录
3.使用clone指令克隆线上仓库到本地
git clone 线上仓库地址
4.在仓库上做对应的操作(提交暂存区,提交本地仓库,提交线上仓库,拉取线上操作)
前两个一样
提交到线上仓库
往线上仓库提交时候出现403的错误
不是任何人都能提交仓库,必须需要鉴权
需要修改“.git/config”来修改:
将第二段的URL修改,github前面 加上 :
账号:密码 @
git push 提交到线上仓库
刷新线上仓库则有
拉取线上文件
git pull
提醒
每天第一件事 是先git pull 拉去线上最新版本
每天下班要做的git pull,将本地代码提交到线上仓库
SSH协议(推荐)
1.生成客户端公私钥对指令
百度码云 有教程
拿到公私钥 传进github
2.将公钥上传到github
执行git 操作,与先前一样
执行git时,将clone的地址粘贴出来
分支管理
Master分支
每次提交都有记录,Git把他们串成时间线,形成类似于时间轴的东西,这个时间轴就是一个分支,叫做Master分支
分支相关指令
前面变绿和有个标记,表示当前分支
查看分支
git branch
创建分支
git branch 分支名
切换分支
git checkout 分支名
删除分支
git branch -d 分支名
删除的时候 一定要先退出要删除的分支,然后才能删除
合并分支
git merge 被合并的分支名
一定要git push,保证上传到线上
先创建再切换到该分支
git checkout -b
冲突的产生与解决
案例
同事再下班后修改了线上仓库的代码
本地内容与线上不一致
第二天上班没有 git push ,下班了却get add ,
这次提交会失败
解决
先get pull
此时git已经将冲突文件合并到了代码中
解决:和同事,谁提交的,与同事进行商量,看代码如何保留,再次提交即可
实用技能
图形化管理工具
github for Desktop(经常使用的开发任意很友好)
source tree
tortoiseGit(熟悉SVN的开发人员很友好)
git自带的 git.gui(不推荐,功能不完善)
忽略文件
有一些万年不变的文件目录,例如css,js,images等,没有必要每次都提交到远程仓库文档,此时使用忽略文件
对当前目录及子目录生效
使用方法
新建一个名为.gitignore的文件,用于声明忽略文件或不忽略文件的规则,规则对当前目录以及其子目录生效
该文件因为没有文件名,没办法在windows目录下直接创建,可以通过命令行Git Bash 输入touch创建
1./****/ 过滤某文件夹的整个文件夹
2.*.zip 过滤某文件下的所有.zip文件
3./***/do.c 过滤某个具体文件
4.!*** 不忽略某个具体文件
在文件中 以#开头的都是注释