git学习黑马

git

分布式版本控制

本地仓库使用

git仓库

git status

暂存区

git commit -m "提交描述"
git status

工作区

git add hello.php

git仓库操作

理解成一个目录

所有代码都可以被git管理起来

1 进行全局配置
1 git bash here

git config --global user.name "shenjh"
git config --global user.email "itcast.pw"
2 创建仓库
让git管理某个新项目或者已存在项目时候,需要创建仓库。
mkdir pro_git

命令行中进入目录
cd pro_git

仓库初始化
git init
执行之后会在目录下创建".git"文件夹

3 常用指令操作

查看当前状态 git status
添加到缓存区  git add 文件名
 语法1 git add 文件名
 语法2 git add 文件名1 文件名2
 语法3 git add.  将当前目录添加到缓存区
 
git add readme.txt
git status

提交到版本库 git commit -m "注释内容"

git add index.php
git commit -m "提交index.php文件"

git add .
git commit -m "提交了两个文件"

git版本回退

两个步骤

1 查看版本
git log
git log --pretty=online  显示所有版本号 根据注释判断选择
2 回退操作
git reset --hard 提交编号

案例

回到创建好第一个readmee.txt的时候

git log --pretty=online
git reset --hard 89u94h3hkjfkgjh
此时回到最早的版本

回到过去后,想再回到最新的时候

使用指令查看历史版本
git reflog

git reset --hard 9809jj

小结

想回到过去,先得到commit_id;

git reset --hard 进行回退

想回到未来

git reflog 查看历史操作 得到commit id;

写回退指令,commit_id可以不用写全。

远程仓库创建

就是创建仓库

远程仓库使用 https协议 方式一

mkdir shop
cd ./shop

克隆线上仓库到本地
git clone 线上仓库地址

仓库上做对应操作
(提交暂存区,提交本地仓库,提交线上仓库,拉去线上仓库)
进入到目录下
cd shop
git add readme.txt
git commit -m "初始化readme.txt文件"
git push
首次往吸纳上仓库shop提交出现了403 ,因为首次需要鉴权。
需要修改config文件
url=https://bjitcast:Zz9887@github.com/bjitcats/shop.git

git push
没有fatal。说明提交成功。

为了保证线上和本地一致 拉取线上最新版本

git pull

方式二 ssh

1 生成公私钥对指令 安装openssh

将公钥上传到github

ssh-keygen -t rsa -C "itcast@cherish.pw"
//默认存放位置
执行指令后连续回车即可

找到公钥文件并打开
粘贴 保存

之后操作和之前一样

cd ..
mkdir withSSH
cd ./withSSH
git clone git@github.com:bjitcast/shop.git
不需要提交账号密码的鉴权方式

git add index2.php

git commit -m "添加"
git push

Git分支操作

git branch  查看分支
当前分支带有*


git checkout -b  创建并切换分支
相当于
git branch 分支  创建分支
git branch dev

加上
git checkout 分支名  切换分支

冲突产生与解决

案例

模拟产生冲突

合并冲突

先git pull

打开冲突文件,解决冲突,

解决方法,和同事商量,代码如何保留,。

再提交商量后的代码。

git add readme.txt

git commit -m "解决了冲突"

git push

冲突原因,上班没有先pull。

了解图形化使用界面

github for desktop
source tree
tortoseGit

svn

忽略文件操作

项目目录下有很多万年不变的文件目录,我们不希望提交到远程仓库,对此使用”忽略文件“

新建一个.gitignore文件

用于声明忽略文件或不忽略文件的规则,对当前目录及其子目录生效,

/mtk/   过滤整个文件夹

*.zip  过滤所有.zip文件夹

/mtk/do.c  过滤某个具体文件

lindex.php  不过滤某个具体文件

案例

提交到本地和线上
git add .
git commit -m "提交js文件夹"

git push
新增.gitignore文件并添加规则
touch .gitignore
因为该文件没有文件名,在windows目录下无法直接创建,通过命令行touch创建;
/js/
同文件夹下再新增文件,并推送
git add.
git commit -m "推送"
git push
之后在线上看不到
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值