# 1.提交代码
git add .
# 2.提交到暂存区
git commit -m "备注"
# 和远程的某个仓库建立连接
git remote add origin 仓库名
# 断开和远程某个仓库的链接
git remote remove origin 仓库名
git add remote
# 3.提交到远程仓库
git push origin 本地分支名:远程分支名
# 4.快速新建一个分支,并且切换
git checkout -b 新分支的名字
# 5.仅仅切换分支,没有新建分支
git checkout 分支名字
# 6.拉下远程的所有分支
git fetch
# 7.合并一个分支 比如在main分支 要合并login分支的代码
# 注意,前面跟仓库名 默认是origin
# 注意 合并完之后 要提交 才能够进行下一次合并
git merge origin/login
# 8.查看当前分支
git branch
# 9.查看提交记录
git log
# 10.查看提交的具体细节
git diff
# 查看当前的状态
git status
# 11.将当前的修改放到一个宝箱,暂时不管。
git stash
-> 切换到另一个分支 git checkout 另一个分支
git stash pop -> 这样能够把刚刚的修改弄出来 适合,在错误的分支上改了代码 想要挽回
开源的概念:
开放源代码
程序和源代码都开放,其他作者可以下载、修改、使用
闭源的定义:
只有作者能够看件源代码
其它作者只能看见程序,但是看不到源代码。
开源,不意味着没有限制,
有限制使用者和保护作者的需求
所以每个开源项目都要遵循开源许可协议
五大开源许可协议:
BSD
Apache Licence 2.0
GPL:
·具有传染性,你的项目使用的一块内容有 GPL 协议,那么你的项目也要满足 GPL 协议
·强制开源,不能闭源作为商业项目;
·著名的有 Linux,是开源的操作系统;其基础上开发的软件都是开源的
LGPL
MIT:
目前限制最少的协议,
修改后的代码或者发行包中必须包含原作者的许可信息
著名的有:jquery,Node.js
·开源,人人为我,我为人人
·给予使用者更多的权限
·能够有助于使用者的学习
·更加安全,人多力量大发现更多的 bug
免费存放开源项目的源代码的平台
出名的:
Github:全球最牛,没有之一,
Gitlab:私有性支持好,企业用户多
Gitee:国产,界面友好,速度快
以上都只支持 Git 的管理工具
全球最大的开源项目托管平台
call-打 call
Pull Request-做贡献
Issues-和作者讨论 bug 和需求
Fork-复制项目进行修改
创建属于自己的开源项目
只支持 Git 作为唯一的版本控制工具,但是不等于 Git,功能更多
是什么:?
远程仓库的两种访问方式
区别:
- HTTPS。零配置,但是每次访问仓库时,都要重复输入账号和密码
- SSH。需要配置,但是每次从访问时,不用重复输入账号和密码
git remote add origin https://github.com/lizhihang123/project_01.git
git branch -M main
git push -u origin main
现有的这个代码
- 是 github 和本地仓库之间免登录和加密传输的一种访问方式
- 好处:1.免登录 2. 数据加密传输
- 由两部分组成:1.id_rsa 私钥文件,存放到本地 2. id_rda.pub 公钥文件,配置到 github
-
打开 Git Bash
-
粘贴命令
ssh-keygen -t rsa -b 4096 -C "2420554367@qq.com"
-
连续敲击三次回车
这样表示设置成功
-
ssh -T git@github.com
-
输入yes
显示这段文字,表示配置成功
-
本地文件导入到本地仓库
- git init
- git status
- git add .
- git status
- git commit -m “”
-
github 新建一个仓库,github 的仓库名可以和 git 的文件夹名不一致
-
f 分别执行三串命令
-
git remote add origin git@github.com:lizhihang123/pro_02.git git branch -M main git push -u origin main
-
最终看到图示效果,表示导入到 github 成功
场景:本地的代码不小心删了
- 点击对应的仓库
- 选择 Code
- 点击 SSH
- 点击复制按钮
- 输入如下代码
- 显示 100%, 即可成功
git clone 对应的地址
如果是 gitee 怎么操作?
mkdir heimatoutiao
cd heimatoutiao
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/Lizhihang123/heimatoutiao.git
git push -u origin "master"
如果是 SSH 就写
git remote add origin git@gitee.com:Lizhihang123/heimatoutiao.git
git push -u origin "master"
平行宇宙,一个宇宙里面你在学习 Git,另一个宇宙里面你在学习 SVN。
正常情况下,这两个宇宙是互不干扰的,是两个分支。
但是一旦合并了,那么你就同时学会了 git 和 SVN。
在开发中的实际运用:
不同的工作人员有不同的任务要完成,要实现不同的功能,在不同的分支。
他们各自的任务做完了以后,合并到了一起,这个主轴就拥有了很多的功能。
记录和保存程序的所有的代码
不允许程序员直接在 main 主分支上进行操作,这样风险很高,容易一不小心删除了所有的代码
所以程序员创建一个分支,做好了,再合并到 main 主分支上
也就是 6.2 提到的不能直接在 main 分支上进行操作,那么就要有功能分支,在功能分支上进行操作,然后合并到 main 主分支。
注意:
main 主分支,全程都存在,生命周期长
功能分支,生命周期短,一合并,就没了。
查看当前有哪些分支
带星号的是当前所处的
git branch
创建 login 分支
注意:此时只是单单创建,但是并没有跳转到 login 分支上,仍旧在 main 分支上
git branch login
切换到 login 分支上
git checkout login
先跳转到主分支上
git checkout main
注意:使用这行代码 前必须先执行上面那行代码。意思是,在主分支上,才能创建一个新的分支并跳转到新的分支上。
不能在别的分支上面创建新的分支并跳转
git checkout -b 分支名字
-
切换到功能分支
-
git checkout reg3
-
进行修改操作
-
切换到 main 主分支
-
git checkout main
-
进行合并
-
git merge reg3
发现 主分支上也有这个操作
- 切换到 main 分支先
git checkout main
- 再删除
git branch -d reg3
如果在 reg3 上面删除,reg3 分支,就会报错
下面流程才是对的:
-
reg1
- 切换到 reg1
- 修改内容
- 提交到暂存区并上传到 git 仓库
-
main
git push -u 远程仓库的别名 本地分支的名称:远程分支的名称
远程仓库的别名写 origin,默认情况都写这个
本地分支的名称写要推送过去的功能分支的名字
远程分支的名称随便取
不取默认和本地分支的名称一致
git push -u 远程仓库别名 本地分支名:远程分支名称
注意:如果 github 已经有这个分支了,那么下一次命令只写如下即可
git push
git remote show origin
show 后面跟的是远程仓库的别名 默认是 origin
这个是下载仓库喽
直接下载,分支名字和远程仓库的分支名字一致
git checkout reg1ister
reg1ister 是远程仓库的一个分支名
下载的同时改名字
git checkout reg origin/reg1ister
-
reg 是想要修改的名字
-
origin 是想要下载内容的远程仓库的别名
-
reg1ister 是从远程仓库下载的内容的别名
-
在 git 执行
-
git push origin --delete reg1ister
-
在远程仓库刷新一下即可发现没有这个分支了
-
-
区别:在本地删除对应的分支
git remote remove origin