这个里面包含了git的基本概念、git的命令、关于项目的本地仓库的创建
所谓的GIT就是用于存档,备份,允许我们的代码有容错的机会,比如:玩游戏魂斗罗小游戏前几关很简单很容易,到后面越来越难,如果没有存档机制我们几条命用完之后,再重新去跑、玩,会非常非常浪费时间,这样用户体验就很不好,如果我们给1-10关做一个存档,后面会从11关开始,这样可以提升我们的游戏体验,减少无用的时间浪费,这样就是游戏存档的意义,接下来我们写代码?一次性正确的写完所有功能难度很大,如果没有存档机制,代码突然被误删了、大量写错的情况下、多人协助的情况下,这样我们需要重写备份,所以我们写代码需要存档机制且这个存档意义是重大的。
什么是GIT?
git是一个版本控制系统,作用域代码备份(支持多人协作),且是免费开源的的软件
下载地址:https://git-scm.com/download/win
注意点:不要安装在中文目录下
装好后:右击查看有如图就是装好,有Git GUI Here与Git Bash Here
如何操作git
在刚开始的时候,我们创建的项目是没有被GIT管理的,当我们希望使用git来管理当前的项目
在文件内会有如图文件:如没有在文件夹上方的查看按钮,将隐藏项目打开即可
注意:不要去修改.git文件夹下的任意东西
3、仓库区:代码永久存储区,每次存入git仓库后,会生成版本号,可以任意回退到任何一个具体版本
准备工作:配置提交者信息
我们到公司里面第一时间要进行的配置(user.name是名字用英文)(user.email是邮箱)
配置提交:git config --global user.name heiwuchang
git config --global user.email [email protected]
git 基本命令
git add 的作用:将工作区文件添加到暂存区
如果不是一个已经暂存过的文件,可以快速的提交,如果是未追踪的文件及时未提交过的文件,那么这个命令不会生效
只会修改最近的一次提交说明,如果提交说明不小心输错了,可以使用这个命令
git reset 的作用:版本回退,将代码恢复到已经提交的某一处版本中
命令:git reset --hard 版本号
注意:可以回退到任意版本,想回到哪个版本就输入哪个版本的版本号
git忽略文件
在仓库中有些文件不想被git管理,可以通过配置从而达到忽视一些文件。
步骤二:将不要被git管理的文件路径,添加到.gitignore中
git分支
为了避免与其他人的代码冲突,所以创建自己的分支,完成对应的功能。比如:科幻电影里面的平行宇宙,当你正在电脑前努力学习git的时候,另一个你正在另一个平行宇宙里努力学习Java。如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了git又学会了Java!
分支实质上就是一个指针,指向的是某个提交的版本;每次代码提交后,这个分支指针就会向后移动,保证一直指向最后一次提交的版本
注意:git第一次提交时,就有了一个master的主分支,指向第一个提交版本
注意:不能在当前分支删除当前分支,需要切换到其他分支才能删除。
git合并分支冲突
我们在公司容易遇到多个分支,并且修改到了同一个文件,容易造成冲突的问题。
步骤一:master 分支 —完成了两次提交 git add . + git commit -m ‘’
步骤二:基于主分支的代码,创建两个分支login/register
步骤四:在login的分支上完成对应的代码,并提交 git add . + git commit -m ‘’
步骤六:在register的分支上完成对应的代码,并提交 git add . + git commit -m ‘’
步骤十:重新再提交 git add . + git commit -m ‘’
git远程仓库
就是托管在网络中,你项目的版本库,且支持多人协作,共同一起管理远程仓库。
git代码托管平台
gitee 码云,国产开源项 目托管平台。免费,访问速度快、纯中文界面、使用友好
SSH免密码登陆
https协议:https://gitee.com/jepsonpp/test.git 需要输入用户名和密码
ssh协议:[email protected]:jepsonpp/test.git 可以配置免密码登录
注意:在实际公司开发中,ssh 的方式更为常见!更加安全可靠!
每次push或者pull代码,如果使用https协议,那么都需要输入用户名和密码进行身份的确认,非常麻烦。
github为了账户的安全,需要对每一次push请求都要验证用户的身份,只有合法的用户才可以push
使用ssh协议,配置ssh免密码,可以做到免密码往github推送代码
ssh key 的作用:实现本地仓库和 gitee平台 之间免登录的加密数据传输。
② id_rsa.pub(公钥文件,需要配置到 gitee平台 中)
私钥加密的信息,只能通过公钥解密。公钥加密的信息,只能通过私钥解密。安全性高。
SSH免密码登录配置
3. 连续敲击 3 次回车,即可在 C:\Users\用户名文件夹\.ssh 目录中生成 id_rsa 和id_rsa.pub 两个文件
4. 使用记事本打开 id_rsa.pub 文件,复制里面的文本内容
5. 粘贴配置到 gitee码云 -> 点击头像设置 -> 选中左侧安全设置下ssh 公钥 中即可
tips: mac获取公钥 https://juejin.cn/post/6844904169191522317
git push 将代码提交到远程仓库
作用:将本地仓库中代码提交到远程仓库
语法:git push 仓库地址 分支名 将代码提交到远程仓库对应分支
例子:git push [email protected]:jepsonpp/test.git master
git remote删除分支
每次push操作都需要带上远程仓库的地址,非常的麻烦,我们可以给仓库地址设置一个别名
git remote add origin [email protected]:jepsonpp/test.git
tips:-u 可以记录push到远端分支的默认值,将来 git push即可
本地分支比如master和远程仓库建立关联,并且以后提交该分支,直接通过git push,一个本次仓库的分支只需要建立一次即可
git clone 克隆代码
作用:克隆远程仓库的代码到本地
语法:git clone [远程仓库地址] 文件名(test)
如果只想克隆分支:git clone -b 分支名 [远程仓库地址] 文件名
git clone [email protected]:jepsonpp/test.git会在本地新建一个test文件夹
在test中包含了一个.git目录,用于保存所有的版本记录,同时test文件中还有最新的代码,可以进行后续的开发。
命令:git clone [远程仓库地址] [本地项目名]
git pull拉取更新
作用:拉取更新,将远程的代码下载合并到本地的分支
本地仓库和远程仓库是一对一的关系,一个本地仓库 只对应一个远程仓库
1、初始化仓库——提交到本地仓库——创建一个远程仓库——承载/管理本地的代码
1、初始化仓库——提交到本地仓库——再去创建一个远程仓库——装载你当前的商城项目
git checkout -b 分支名 注意点: 创建的分支名要和远端分支名相同
先在本地建立一个分支,并切换到该分支,然后从远程分支上同步代码到该分支上,并建立关联
已经存在的本地仓库 李四 lisi
1、将远程仓库中pay分支的代码合并到本地仓库中master分支
现在处在master分支 直接通过git pull origin pay 远程仓库的分支名
2、将远程仓库中的reg分支的代码拉取到本地仓库中的reg分支
git checkout -t origin/develop #远端分支名和本地新建分支名同名
后续拉取该分支的更新,就是切换到该分支,git pull origin 分支名
Git基本常用命令如下:
git add .
git commit -m "提交信息"
git commit -a-m "快速提交(前提是已被追踪过 经历工作区到暂存区到工作区的过程)"
git log 查看日志
git log --oneline 简化日志
git status 查看文件状态
git status -s 简化查看文件的状态
git init 初始化仓库 一个项目
git config GIT配置
git reset --hard 版本号 !!不要不些版本号!!
git reflog 查看所有日志
.gitignore 忽视git文件
cls和clear 清除命令
cd(changedirectory) 文件路径:返回上一级文件 cd返回下一级(这不是git命令,而是终端命令)
dir/ls可以拿到文件夹的东西
git --help / git help -a 可以提示命令
总结:
将代码提交到远程仓库 创建一个远程仓库 - 一个远程仓库 对应一个本地仓库 (项目) 1v1的关系 将本地仓库中的代码提交到仓库区 git init git add . git commit -m '提交说明' 提交到远程仓库 设置别名 git remote add 仓库别名 仓库地址 提交代码 push (将本地代码推到远程仓库) git push origin 分支名 git push -u origin 分支名 -u 建立关联 将本地仓库的当前分支和远程仓库建立关联 (只需要建立一次即可) 后续该分支就可以通过git push进行提交 刚进入公司, 想获取公司代码 克隆代码 git clone 仓库地址 可选的文件夹的名字 同事刚提交了代码到远程, 想获取代码 (差异化更新) git pull 需求: 将远程仓库的其他分支下载到本地 创建并切换到(同名)分支 git checkout -b 分支名 进行更新 git pull 别名 分支名 标签:碰到,GIT,仓库,解决方案,代码,git,提交,远程,分支 From: https://www.cnblogs.com/bianxuehua/p/17367002.html