Git远程仓库
1. 开源
开源就是开发源代码,代码公开
2. 代码托管平台,
- GitHub 全球最大的开源项目托管平台 国外
- Gitee 国内开源 git 代码托管平台
- Gitlab ==> 企业级 git 代码托管平台
=> 上面三个平台,都用Git来管理项目代码
git 是版本控制工具
3. 远程仓库
3.1 远程仓库解决了什么问题
- 仓库备份(远程备份不易丢失)
- 多人协作(远程仓库同步代码)
3.2 常见的代码托管平台几个?
github 、 gitee 、gitlab
3.3 如何生成ssh-key秘钥
https://gitee.com/help/articles/4181
bash
# 1. 生成密钥对
ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"
# Generating public/private ed25519 key pair...
# 2.查看公钥,在平台上配置公钥
cat ~/.ssh/id_ed25519.pub
# ssh-ed25519 AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....
# 3. 检验是否本地和远端可以通讯,是否配置好(这个例子是gitee)
ssh -T git@gitee.com
git命令
1. git push
将本地仓库的代码提交到远端仓库
git push 仓库地址 分支名
javascript
// git push 在推送自己代码到远端之前,
// 如果远端又更新, 需要先拉取一下最新的代码到本地. 先git pull
2. git remote
每次push都带上远程仓库地址,就很麻烦,我们可以给远程仓库设置一个别名
javascript
// git remote add 仓库别名 仓库地址
git remote add origin 仓库地址
// 查看远端仓库
git remote
git remote -v
// 删除rm别名
git remote rm origin
3. git push -u 关联
-u 记录push到远端分支的默认值, 以后git push即可。
javascript
// git push -u 仓库别名 分支名
git push -u origin master
// 关联绑定好之后,以后 可以直接 git push
4. git clone
克隆远程仓库的代码到本地
javascript
// git clone 远程仓库地址 [可以重命名]
5. git pull 拉取
拉取代码的更新,将远程的代码下载合并到本地的分支
javascript
// git pull 远程仓库地址 分支名
git pull origin master
=> 如果关联过 -u 过
// 简写=> git pull
3. 分支branch
1. 分支的本质
分支的本质: 分支实质上是一个指针,指向某个提交的版本 每次代码提交后,这个分支指针就会向后移动,保证一直指向的是最后一次提交的版本
2. 如何区分当前正在哪个分支上
head指针 标记当前分支
1. git branch
bash
# 在仓库目录下输入如下命令 查看分支
git branch
# 创建分支
# 在 branch 后面加上一个名字, 代表创建一个新分支
git branch 新分支名称
# 注意,
# 1. 创建的分支是基于当前所处的分支创建的
# 2. 如果在master分支上创建新分支,创建完后, 用户还是处在master分支上
2. git checkout 切换分支
shell
git checkout 指定分支名字
# 比如: 切换到login分支上
git checkout login
3. 快速创建并切换
bash
# -b 表示创建一个新分支
# checkout 表示切换到刚才新建的分支上
git checkout -b 分支名称
4. 合并分支
bash
# 1. 切换到 master 分支
git checkout master
# 2. 在master 分支上运行 git merge 命令,将 login 分支的代码合班到 master 分支
git merge login
# 合并分支时的注意点:
# 假设要把 login 分支的代码合并到 test 分支,
# 则必须先切换到 test 分支上,再运行 git merge 命令,来合并 login 分支!
5. 删除分支
当把功能分支的代码合并到 master 主分支上以后,就可以使用如下的命令,删除对应的功能分支:
bash
git branch -d 分支名称
# 注意要删除某个分支时, 不能在那个分支上面
6. Git冲突的解决
如果在两个不同的分支中,对同一个文件进行了不同的修改,Git 就没法干净的合并它们。 此时,我们需要打开
javascript
1. 从master上创建一个login分支并切换过去
2. 在login分支上修改了login.html这个代码
3. 提交到本地
4. 切换到master分支上
5. 在master分支上,又对这个login.html 做了修改
6. 合并 在master分支上 做了 git merge login ==> 这个时候,就产生了冲突
手动解决冲突,保留自己想要的那部分代码
git add .
git commit -m "解决冲突"
- 采用当前更改 2. 采用传入更改 3. 保留双方更改 4. 比较变更
bash
<<<<<<< HEAD
# 这里的是当前分支上修改的内容
========
# 这里的是要merge过来的那个分支的修改内容
>>>>>>> tab