git init
git config --global user.name “ningxiaowu”
git config --global user.email “2453468739@qq.com”
第四节课
##自报家门
每一备份都会把当前备份者的信息存储起来
配置用户名:
git config --global user.name “ningxiaowu”
配置邮箱:
git config --global user.email “2453468739@qq.com”
第五节课
##把代码存储到.git仓储中
-1.把代码放到仓储的门口
git add ./readme.md
-2.把仓储门口的代码放到里面的房间中去
git commit -m “这是测试-这是对添加东西的说明-我们完成的第一个功能!”
第六节课
git add ./readme.md
git commit -m “这一次,我们在上一次的基础上,又加了一个功能!”
第七课
git add ./readme.md
git commit -m “这一次,我们在上一次的基础上,又加了一个功能,即第三个功能!”
git status//这个命令是来查看文件的存储状态
----------->
git status
git add ./readme.md
git status
git commit -m “这是我们做的第四个功能”
git status
---------->
##查看当前状态
git status
第八课
git status
git add ./
git status
git commit -m “添加了01.js和一个新功能”"
git status
git commit --all -m “这是一次性操作”
解释:
##把代码放到仓储中
-1.把代码放到仓储门口
git add ./readme.md 这个是把所指定的文件放在门口
git add ./ 这是把所有修改的文件添加到大门口
-2.把仓储门口的代码放到里面的房间中去
git commit --all -m “一些说明”
加了–all表示是把所有修改的文件提交到版本库中
第九课
##查看日志
git log 查看历史提交的文件
git log --oneline 可以查看简洁版的日志
第十课
git log --oneline
git reset --hard Head~0
在readme.md里面加一句话:我是中国人,我爱自己的祖国
git add ./
git commit -m “这是第七个功能-加了一句爱国的话”
----------------------------->
解释:
git reset --hard Head~0 head指向不变,恢复到原来文件的内容,即回退到上一次代码提交的状态
git reset --hard Head~1 head指向往前移一位,恢复到从head开始之前的所有文件,即回退到上上次代码提交的状态
git reset --hard Head~2 head指向往前移两位,恢复到从head开始之前的所有文件,即回退到上上上次代码提交的状态
第十一课
添加第八个功能
git add ./
git commit -m “这是第八个新功能”
git log --oneline
git reset --hard 2ed53f6
-------------------------------->
git reset --hard [版本号]
通过版本号,可以精确的回退到某一次提交的状态
如何查看版本号?
git reflog
第十二课
功能九做到一半怎么办?
(因为代码没完成,所以如果团队拿到我们的代码肯定是不能运行的,我们既想把我们的代码备份,又不想影响别人)
-------->
既想把我们的代码备份,又不想影响别人=>我们引入
分支
的概念=>相当于是又开辟了一个平行宇宙,别人可以运行的代码是一个平行宇宙,我们没写好的代码位于另一个平行宇宙,谁都不影响谁
git branch dev //创建平行宇宙dev
git branch//查看平行宇宙dev
git checkout dev//从master宇宙切换到dev这个平行宇宙
git status
git add ./
git commit -m “这是在dev中提交的功能9的一半”
git add ./
git commit -m “完成了完整的功能九(在dev中提交的)”
git log --oneline 查看已经写好的日志
git checkout master 切换回master平行宇宙
git log --oneline 这个时候查看一下日志,发现在master的日志中没有dev的日志
git merge dev 将在dev中已经写好的日志更新到master中
git log --oneline
第十三课
git branch -d dev 删除dev这个分支,注意:删除dev这个平行宇宙的前提是:当前所在的平行宇宙必须不是dev,必须是master或者其他,因为在dev中删除dev,git控制台不知道该何去何从,所以要删除dev,必须提前切换到其他平行宇宙!即执行git checkout master这个命令
git branch dev //创建平行宇宙dev
git checkout dev//转换到dev
git add ./
git commit -m “功能十的一半(dev)”
git add ./
git commit -m “功能十已完成(dev)”
git checkout master//转换到master
git add ./
git commit -m “这是在master中完成的功能十”
git branch
clear
git merge dev //显示冲突,这时要人为搞定
git status
git add ./
git commit -m “这是处理冲突之后人为的提交”
--------------->
合并时如果有冲突,需要手动去处理,处理后还需要再提交一次
第十四课
github不是git,只是一个网站,只不过这个网站提供了服务器,即允许别人通过git上传代码的功能
##提交代码到github(当作git服务器来用)
//这是我要上传的地址:https://github.com/1AoB/2022-01-08_test.git
git log --oneline
git push https://github.com/1AoB/2022-01-08_test.git master
//注意:若以上代码出现出现错误,解决方法很简单:就是您当前git版本过低,请在官方重新下载最新的git版本!
------------>
解释:
git push [地址] master 会把当前分支的内容上传到远程的master分支上
第十五课
在这节,我们写了一个index.html文件
上传这个html文件
-------->
git add ./
git commit -m “添加了index.html文件”
git push https://github.com/1AoB/2022-01-08_test.git master
此时,再在桌面创建一个名为xiaohong的文件
在这个文件夹下右击 Git Bash Here
git init
$ git pull https://github.com/1AoB/2022-01-08_test.git master
$ git log --oneline
----------------->
解释:
git pull [地址] master 会把远程分支的数据得到:(注意本地-要初始化一个仓储!)
此时,再在桌面创建一个名为testClone的文件
在这个文件夹下右击 Git Bash Here
git clone https://github.com/1AoB/2022-01-08_test.git
//如果以上代码出现错误,尝试将https改为git,就ok了
------------->
解释:
git clone [地址]
会得到远程仓储相同的数据,如果多次执行会覆盖本地内容
总结:
我们通过push将本地代码上传
我们通过pull将github服务器上的文件拷贝到本地
我们通过clone也是将github服务器上的文件拷贝到本地
第十六课
##ssh方式上传代码
- 公钥 私钥 ,两者之间是有关联的.
ssh-keygen -t rsa -C “2453468739@qq.com”
id_rsa =>这个是私钥
id_rsa.pub=>这个是公钥
git push git@github.com:1AoB/2022-01-08_22-50test.git master
第十七课
模拟两个用户进行同时开发
把myproject当成xiaoming(小明)
xiaohong文件夹:(当成小红)
git init
git pull git@github.com:1AoB/2022-01-08_22-50test.git master
git status
-------->
然后,小明:修改后现在本地提交,然后再push到服务器上
小明下的控制台:
git add ./
git commit -m “我添加了一行”
git push git@github.com:1AoB/2022-01-08_22-50test.git master
然后,小红:想把最新的数据拿过来
小红下的控制台:
git pull git@github.com:1AoB/2022-01-08_22-50test.git master
----------->
小明更新了index.html
小明下的控制台:
git add ./
git commit -m “添加了哈哈”
git push git@github.com:1AoB/2022-01-08_22-50test.git master
小红下的控制台:
小红先在自己的html上进行修改
git pull git@github.com:1AoB/2022-01-08_22-50test.git master
此时,会报错,提醒可能会覆盖掉小红自己修改的部分,解决方法是:自己手动进行更新
git add ./
git commit -m “这是我小红自己添加的第3行”
git pull git@github.com:1AoB/2022-01-08_22-50test.git master
//此时,会显示冲突conflict
小红在自己的html下进行选择要那些内容
git add ./
git commit -m “合并冲突后的修改”
第十八课
接地十七课的小红:
git push git@github.com:1AoB/2022-01-08_22-50test.git master
clear
git log --oneline
接地十七课的小明:
git log --oneline
git pull git@github.com:1AoB/2022-01-08_22-50test.git master
git log --oneline
----------->
然后,小明:
修改了自己的html
git add ./
git commit -m “小明又加了一行代码”
git push git@github.com:1AoB/2022-01-08_22-50test.git master
git log --oneline
小红:
修改了自己的readme.md文件
git add ./
git commit -m “我是小红,我修改了readme文件”