Git提交代码仓库的两种方式

一: 两种本地与远程仓库同步

"""
1)你作为项目仓库初始化人员:
线上要创建空仓库 => 本地初始化好仓库 => 建立remote链接(remote add) => 提交本地仓库到远程(push)

2)你作为项目后期开发人员:
远程项目仓库已经创建成功 => 复制远程仓库到本地(clone) => 进入仓库就可以进行接下来的开发
"""

1 git 远程仓库

1.创建一个空项目,如果选择.gitignore和开源许可,那么创建的创建就不是一个空仓库,会存在:
	1 .gitignore
	2 LICENSE  开源许可

image

2.创建完成的空仓库

image

提交本地版本库操作
1.初始化
git init
2.查看当前状态
git status
3.提交到暂存区
git add .
4.查询当前状态
git status
5.提交到本地的版本库
git commit -m '第一次提交'

image

提交到远程版本库操作
1.Git 全局设置:
git config --global user.name "www.zhang.com"
git config --global user.email "10311112+wwwzhang-com@user.noreply.gitee.com"
# 注意: 如果邮箱设置的是别人的邮箱,那么提交到远程仓库就会显示别人的头像与名称
git config --global user.email "10311112+wwwzhang-com@user.noreply.gitee.com"
2.增加一个远程仓库地址
git remote add origin https://gitee.com/wwwzhang-com/admin_item.git

# 提示标准写法:
	git remote add 名字 远程仓库地址

image

3.查询当前存在的远程仓库
git remote

image

5.本地版本库内容提交到远程仓库
git push origin master  # 把本地版本库内容,提交到远程仓库,需要输入giee的用户名密码

# 提示标准写法:
	git push 远程仓库名字 分支名字

image

image

6.查询远程仓库

image

注意:本地版本库提交到远程仓库用户名密码存放位置

image

远程仓库操作

1.增加
-git remote add 名字 远程仓库地址
2.查看
-git remote
3.删除
-git remote remove origin
4.提交到远程仓库
-git push origin master

本地仓库与远程仓库提交使用(删除与新增)

1.当pycharm删除了一个文件s1.py
# 当pycharm删除了一个文件s1.py
1.删除或者新增都会进缓存区
2.将缓存区提交到本地版本库
git commit -m '删除s1.py'

image

2.本地版本库内容提交到远程仓库
push origin master

image

3.查询远程仓库
1.本地版本库提交到远程仓库记录
2.分支master提交到远程仓库记录,测试,开发本地版本库。提交到远程仓库。

image

remote源操作

"""
1)查看仓库已配置的远程源
>: git remote
>: git remote -v

2)查看remote命令帮助文档
>: git remote -h

3)删除远程源
>: git remote remove 源名
eg: git remote remove origin

4)添加远程源
>: git remote add 源名 源地址
>: git remote add orgin git@gitee.com:doctor_owen/luffyapi.git

5)提交代码到远程源
>: git push 源码 分支名

6)克隆远程源
>: git clone 远程源地址
"""

"""
1)通过克隆方式连接远程源,默认远程源名就叫origin;所以主动添加远程源来连接远程仓库,源码也用origin
2)本地一个仓库只需要和远程一个源进行同步,所以只需要连接一个远程源,如果还想把本地代码同步给第三个平台,那么可以通过主动添加远程源来连接第三个平台的远程仓库,此时的源码就不能再叫origin了,比如online都可以
3)pull和push都可以提供选择不同的源码,和不同的远程仓库交互
"""

2 采用ssh协议连接远程

连接远程服务器的两种方式
1.https方式: 使用用户名+密码认证的方式
2.ssh方式: 公钥私钥方式
    1.本地生成公钥私钥
    2.把公钥配置到gitee上
    3.以后再提交到远程仓库就不需要输入用户名和密码了
使用ssj协议连接远程使用流程
1.cmd命令 窗口执行生成公钥私钥
# 本地生成一个公钥私钥 rsa加密方式  邮箱
ssh-keygen -t rsa -C "10311112+wwwzhang-com@qq.com"

# 生成存储位置: C:\Users\86130/.ssh/id_rsa
生成到用户家路径的 .ssh文件夹下
-id_rsa      # 私钥
-id_rsa.pub  # 公钥

# 回车即可

image

2.把本地公钥配置到gitee上

image

重写配置远程仓库为ssh(以后再提交代码就不需要输入用户名密码了)

# 注意: 本地sttps,git的凭据就可以删除了

# 1.删除之前配置的https协议的远程仓库
git remote remove origin

# 2.查看当前远程仓库
git remote

# 3.配置ssh远程仓库(以后再提交代码就不需要输入用户名密码了)
git remote add origin git@gitee.com:wwwzhang-com/lufy_api.git

# 4.查询当前远程仓库   
git remote

image

本地版本库提交到远程ssh仓库

# 1.修改了gitignore内容(提交至缓存区)
git add .
# 2.将缓存区提交至版本库
git commit -m '修改了gitignore'
# 3.将本地版本库提交至远程ssh仓库
git push origin master  # yes,继续连接

image

3 项目创始者和项目开发者

1.如果我是项目开发者,需要把代码clone到本地

# 开发者
1)生成自己电脑的公钥,配置到自己的码云个人公钥中
2)把自己的码云用户名提供给别人,别人添加你成为项目开发者
3)自己确认添加,成为开发者,克隆开发项目,进行开发
# 需求: 本地lufei项目被意外删除了,需要从远程仓库克隆/下载到本地

1.https或ssh或克隆都可以,三种下载方式
# git clone https链接
git clone https://gitee.com/wwwzhang-com/lufy_api.git

image

下载本地成功

image

# 所有版本记录都存放在.git文件夹里面
git status

image

重新将代码提交到远程仓库
# 修改代码
1.提交至缓存区
git add .
2.提交至版本库
git commit -m '开发者最后'
3.提交至远程仓库  
git push origin master  

# 注意
1.出现输入用户名和密码的情况,输入即可,因为是使用https下载的
# 解决方法:
1.重新配置ssh公钥私钥即可

image

1 如果我是项目开发者,需要把代码clone到本地
	-git clone https://gitee.com/liuqingzheng/luffy_api.git
     -修改代码
    -提交到远程
    	git push origin master

2 如果我是项目创始者,需要远程新建仓库,本地代码push上去

# 创始者顺序
1)生成自己电脑的公钥(公钥生成一次就可以了),把它提交给项目管理者
2)项目管理者添加你公钥,加入开发者,提供给你项目克隆地址
3)克隆开发项目,进行开发

# 1.项目的创始者:
可以在项目管理-->仓库成员管理-->开发者邀请其他成员加入--成为开发者

# 2.开发者可以进行以下步骤:
    1.我是项目的开发者,把代码clone到本地
    2.修改代码
    3.提交到远程

image

4 协同开发

1 管理员,开发者(10开发者)
	-能提交代码(能增删查改代码)  

协同开发(跨版本问题)

# 协同开发(跨版本问题)
1.当开发者在开发a版本时,另两个开发者,已经提交了两个版本到远程仓库,
2.问题: 这个时候在开发a版本分支的开发者如果提交到远程仓库会造成版本冲突,严重会让2版本和3版本被自己跨版本提交的版本覆盖掉。
3.解决: 必须先拉取代码下来(让你本地保持最新)git pull origin master,在进行提交即可  

image

协同开发(拉取代码与自己相同问题)

1.可能会发送的冲突,当我们拉取下来的代码与自己修改的是同一行代码,会发送冲突
2.所以解决冲突,再进行提交即可

image

协同开发(拉取代码与自己相同问题)解决上述问题完整

1.冲突解决(多人在同一个分支开发,导致冲突)
"""
<<<<<<< HEAD  # 冲突的开始
# 自己的代码
=======  # 分割线
# 别人的代码
>>>>>>> b63c408abd05b87fc492d40523240561999dba50  # 冲突的结束(版本)
"""
# 冲突解决:
	解决方案一:
    1.改同样的功能出现的冲突,看一下谁的代码更好,保留好代码,删除不好代码
    解决方案二:
    2.改的不是同样的功能出现了冲突,留着两个人的
    
# 避免冲突
	1.没事就拉一下代码

5 线上分支合并

1.本地建立分支,同步到远端

# 本地建立分支,同步到远端
-git branch dev
-git push origin dev
本地建立分支,同步到远端顺序
1.创建dev分支
git branch dev

2.切换到dev分支
git checkout dev

3.提交至版本库
git commit -m 'dev分支更改'

4.将本地分支dev提交到远端的master下
git push origin dev

image

引入前提远端同步本地:
## 本地:
# 1.切换到master分支
git checkout master
# 2.强删除dev分支(因为没有合并普通删除不了,使用-f 强制)
git branch -d dev -f

image

## 远端
1.删除上一次使用的dev分支
2.重新创建一个新的dev分支

image

1.远端建立分支,同步到本地

# 远端建立分支,同步到本地
-git pull origin dev
-git branch   # 看不到
-git checkout dev  #切到dev分支,本地就能看到了
远端建立分支,同步到本地顺序
1.拉取远端master分支(没事拉一下防止冲突)
git pull origin master

2.查看当前分支
git branch

3.将远端分支dev拉取到本地
git pull origin dev  # 注意因为当前dev分支什么都没有,所以可能git branch查询不到,直接切换即可,在git branch就跨域看到了。

image

本地分支提交代码到远端dev分支
1.切换到dev分支
git checkout dev  

2.增加数据

3.提交到缓存区
git add .

4.提交至版本库
git commit -m '提交'

5.将本地dev分支提交至远端dev分支
git push origin dev

5.查询当前分支
git branch

image

posted @ 2023-04-14 17:31  AlexEvans  阅读(507)  评论(3编辑  收藏  举报