各项 GIT的区别
我理解为 git 是系统、gitee 是国内远程仓库网站、github 是国外的远程仓库网站、gitlab 是企业内部的,用于企业内部的协同办公。
版本控制
- 版本不断迭代更新,需要版本控制来进行管理,对版本进行备份和更新。
版本控制可以分为三部分:
- 本地版本控制
- 集中版本控制:所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新活自己上传修改。 代表:SVN、CVS、VSS
- 分布式版本控制系统:所有版本信息仓库全部同步到本地查看所有版本历史,可以离线再本地提交,只需要在连网的时候 push 到相应的服务器或其他用户那里。由于每个用户那里 保存的都是所有版本的数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。(这咋有点像区块链) 代表:GIT
安装 git 以及环境配置
git 的官网: https://git-scm.com/ ,下载安装即可
- 卸载可以先清理环境变量、然后卸载
找环境变量首先找到系统→高级系统设置
![[83G@S3}_H}NTNPN6R6UQFUF.png]]
然后环境变量→系统环境变量“path”→找到相应的删除
![[7ZMD5(`I5~HNS@QIUY40DHR.png]]
![[Pasted image 20230703134459.png]]
安装成功后鼠标右击会出现这两个
git 的配置
在 bash 中查看 git 配置,输入
git config -l
- 设置用户名与邮箱
git config --global user.name"xxxxxx"
git config --global user.email xxxxxxx
输入 git config --global --list
可以查看、
在 git 中,粘贴为 shitf+ins
git 的工作原理
![[1687915384129.png]]
工作目录、缓存区、资源库、git 上的远程仓库
git 项目创建
git 本地仓库搭建
#在当前目录先建一个GIT代码库
git init
![[[NDJ[(~BTY8JALG4{96VH_6.png]]
克隆远程仓库
git clone [url]
忽略文件
在主目录下建立".gitignore"
*.txt #表示忽略所有.txt结尾的文件
!lib.txt #表示除了这个文件
/temp #表示忽略根目录下它上级的文件
build/ #表示忽略它下级的文件
doc/*.txt #会忽略doc/notes.txt但不包括doc/server/arch.txt
使用码云
- 注册登录码云,完善个人信息
- 设置本机绑定 SSH 公钥,实现免密码登录!
#进入C\Users\Administrator\.ssh
#生成公钥
ssh-keygen
- 将公钥信息 public key 添加到云账户中就可以
![[1688367019890.png]]
要是没有这个文件夹,可以创建一个
用记事本打开下面那个文件,复制到公钥设置中即可
idea
- 新建目录,绑定 git
- 将远程的 git (可以是克隆下来的)文件目录拷贝到项目中
- 修改文件,使用 idea 操作 git
- 提交测试
git status [filename]查看指定文件状态
git add .
git commit -m"备注消息"
git push
分支
分支相当于平行宇宙
#列出所有分支
git branch
#列出所有远程分支
git branch -r
#新建一个分支,但是仍然停留在当前分支
git branch [branch-name]
#新建一个分支,并切换到该分支
git checkout -b [branch]
#合并指定分支到当前分支
git merge [branch]
#删除分支
git branch -d [branch-name]
#删除分支
git push origin --delete [branch-name]
git bransh -dr [remote/branch]
如果同一个文件在合并分支时都被修改了则会引起冲突:解决方法是我们可以修改冲突文件后重新提交
master 主分支应该非常稳定,用来发布新的版本,一般情况下不允许在上面工作,工作一般情况下在新建的 dev 分支上工作,工作完后,或者说分支代码稳定后再进行合并