Git是什么?
一款分布式版本管理的软件,Linux 内核,通过....操作...!!! 代码版本管理工具
- 作用:代码版本管理工具
- 特性:
- 分布式
- 团队每一个人的电脑,都一个完整的版本。
- 分布式
-
- 更新
- 线上版本同步,拉到本地更新
跟GitHub又有什么关系
git与github 是什么关系?
项目这个东西肯定大家一块撸开心呀!
建国做登录,我做支付
思考一下,如果我登录做完了,我两代码要怎么合并
我把189,190行粘给你,你把184行粘给我 并不是这样的
我们都提交一个位置, 大家都在这进行同步好了
建国写完 提交线上 我也也要提交,这个时候
git的作用就是检查看你们两写的有没有重复
github的作用就是 没有重复好,提交到我这里,我保管
此刻你可以理解 他们两个是合作关系 github就是一个线上代码仓库
有同学说了 咱们国人有个叫码云线上仓库跟github一样?
一毛一样,并且我推荐使用码云
你的代码是提交到github还是提交到gitlab 只需要修改一下地址就好
git操作命令都是一致的
一图胜千言
与上图一样 我的代码提交到线上github ,然后建国,韩梅梅,拼西西,都去github拉取代码
思想
现在你要有一个思想,线上库(github) 本地库(git)
先完成提交本地,在提交线上,注意顺序,这个思想贯穿全剧
创建一个 完全 空的仓库
获取线上库项目地址: github.com/xxx/test
本地完整提交流程
拉取代码 git clone github.com/xxx/test
- 点击进入项目
- 注意windows需要设置 显示隐藏文件
- 你会看到一个.git 这个就是git配置文件
第一步 查看状态 git status
- 尝试修改一些内容 ,执行 git status
- 你会发现一个红色文件, git记录你修改文件
第二部 git add .
- 我今天开发工作结束,或者我这个功能开发完了,需要存档
- 执行 git add . 将所有更改加入追踪,就是可以提交
- 在执行一个查看状态(git status),你会发现刚才文件名变成绿色
第三部 git commit -m 给我这次修改,加上一条说明
- 这个修改你做了什么 ? 在此次修改打上一个日志
- 就想我打游戏存了一个档,代码蹦了不要紧 我可以重新开始
- 初次使用需要配置个人的用户名称和电子邮件地址
base
配置个人的用户名称和电子邮件地址,Git 每一次提交时都会引用这两条信息,说明是谁提交了更新,并记录历史.没有添加信息,不能给文件加log,与登录账号密码无关
$ git config --global user.name "注册名称,github登录界面右上角查看"
$ git config --global user.email "注册邮箱@xxx"
$ git config --list 查看
事情到这里 你已经完整的完成了一次 本地提交
线上更新
代码需要与其他小伙伴同步你的代码,咱们需要同步更新云仓库 github
base
git push // 提交到线上当前分支
此时你做完,本地存档,并且线上更新操作,是不是很简单
代码下载流程
base
git clone https://github.com/name/xxxx 下载默认分支
git clone -b <branch> https://github.com/name/xxxx 下载指定分支
git checkout -b <branch> <origin/branch> "已有工程取远程分支并与本地分支同步"
代码更新流程
base
git pull 拉取当前最新内容
git pull origin <branch> 拉取指定分支最新内容
常规操作
远程提交流程 远程提交需要每次输入账号密码 也可输入缓存命令,在进行一次提交,完成缓存账号密码到本地
base
git push "提交默认远程分支"
git push origin <branch> "提交库并创建分支"
缓存本地账号密码
git config --global credential.helper store
如果输入错误,清除缓存
git credential-manager uninstall
分之操作 (branch)
版本迭代每一个版本修改内容不能混淆,就需要进行分支操作 查看分支
base
git branch -r // 查看远程分之:
git branch -v // 查看本地分之
git branch -a // 查看所有分之
git fetch // 更新本地远程分支
新建分支
base
// 创建分支
git branch <branch>
//切换分支
git checkout <branch>
// 或者 创建同时并且移动
git checkout -b <branch>
// 写入创建分支日志
git commit -m "init_branch_info"
// 提交远程库
git push origin <branch>
分之合并 注意: 分支合并之前 git status 工作区要是干净的 例如: dev 合并 master dev的版本一定高于master
js
git checkout master
git merge dev
退出Vi编辑模式 :wq
回滚版本
js
$ git log //查看所有日志
$ git reset --hard c75284e3ad99b6f43641d91168aa82322e6cfbd5 //根据40位的哈希值,回滚代码
//不要再主要分之上面操作
$ git push -f //强制提交
$ git revert HEAD //回滚最后一次提交
恢复删除分之
js
// 删除分支
// 删除本地分支
git branch -D <branchName>
// 删除远程分支
git push origin :dev
//恢复分支
// 获取删除分支日志 log 获取 HEAD@{4}
$ git reflog
// 根据 HEAD码选择恢复那个已经删除分支
$ git branch <branch_name> HEAD@{4}
从零本次初始化版本库
js
git init // 初始化
git remote add origin https://gitee.com/msea/interview
git remote -v // 查看
git branch --set-upstream-to=origin/master master
git pull origin master --allow-unrelated-histories // 拉取远程库,并更新本地,并建立联系,可能会冲突
git remote remove origin // 重新添加需要先删除远程库连接
//在执行提交流程
nrm 源管理工具
国内一般使用 淘宝镜像,方便我们 在npm 与淘宝镜像源进行切换
js
npm install -g nrm
nrm ls 查看当前使用源,带*的是当前使用的源
nrm use taobao 使用淘宝镜像源
命令行常用操作
js
$ vi 打开一个文件 esc :wq //退出linux命令行
$ i 光标出现 insert //编辑状态
$ touch file.txt //创建文件
$ madir // 创建文件
$ rm //删除文件
$ rm -f file.txt //删除文件
$ rm -d menghai //删除一个空目录
$ rm -rf haiyang //递归删除当前空目录
注意当项目正式上线 从master 上面打一个 tag tag_1.1.0_20210901 写好备注,记录一下当前的版本 使用规范,本地预留 master 正式分支 pre 预上线分支 test 测试分支 dev 开发分支 合并两个不相关的分支
js
git pull origin master --allow-unrelated-histories
更新线上新增分支
js
git fetch
ssh秘钥创建,一路回车
js
ssh-keygen -t rsa -C
Mac
cd ~/.ssh
ls
cat id_rsa.pub
粘贴 ssh 路径 就可以直接下载了
觉得帮到您记得点赞