远程仓库命令
新增远程仓库:git remote add
远程仓库命令:
1、查看仓库已配置的远程源:git remote \ git remote -v
2、查看remote命令帮助文档:git remote -h
3、删除远程源:git remote remove 源名
eg: git remote remove origin
4、添加远程源: git remote add 源名 源地址
eg.git remote add orgin https://gitee.com/liuqingzheng/app01.git
5、提交代码到远程源(以后会经常用):git push 源名 分支名
6、克隆远程源(以后会经常用):git clone 远程源地址
7、从远程仓库拉去代码(以后会经常用):git pull 源名 分支名
使用ssh链接远程仓库
为什么使用ssh?
之前咱们添加远程仓库,地址是 http开头的,使用的是http链接远程仓库,输入了用户名和密码,记录在操作系统本地,以后就不用在输入用户名密码了
git remote add orgin https://gitee.com/liuqingzheng/app01.git
咱们要学习ssh方案,不需要输入用户名密码了,公钥私钥认证方式
本地机器保留私钥,在远程仓库配置公钥
远程仓库地址,就不是http的了,而是
pythongit@gitee.com:liuqingzheng/lqz2.git # ssh方案,需要公钥私钥 https://gitee.com/liuqingzheng/lqz2.git # http/https方案,用户名密码
如何生成公钥私钥:
1、命令窗口中执行:cmd/git bash here
ssh-keygen -t ed25519 -C "306334678@qq.com"
2、在操作系统用户--加路径--.ssh文件夹---公钥私钥
id_ed25519.pub # 公钥(给别人)
id_ed25519 # 私钥(自己留着)
3、去gitee配置公钥
https://gitee.com/profile/sshkeys
ssh -T git@gitee.com # 输入yes
4、以后可以免密操作
5、增加一个远程仓库地址:指定是ssh链接
git remote add origin git@gitee.com:liuqingzheng/lqz2.git
6、把代码推送到远端
git push origin master
以后用https还是ssh呢?
公司里用ssh居多
公司中你们的使用流程:
1、要么自己注册,公司给你注册好了,账号密码和gitee地址
2、登录到gitee上,能看到一个项目(别人创建的,但你是开发者,你能看到)
本地生成ssh公钥和私钥---把公钥配置在gitlab
继续后续操作
3、把代码拉取到本地(已经配置好了ssh公钥和私钥)
git clone git@gitee.com:liuqingzheng/lqz2.git
4、修改代码,加代码
5、本地提交
6、推送到远端
协同开发之项目创建者
作为项目的创建者,我们需要本地代码推送到远程仓库
多人合作开发一个项目:luffy_api------本地放到远端 本地项目还没创建仓库
远程仓库是空的
远程仓库不是空(对钩可以点了)
远程仓库不为空的操作步骤:
1、远端创建一个不为空的仓库
2、在本地拉取:git clone git@gitee.com:liuqingzheng/luffy_api.git
3、在拉取的仓库中加代码(我们直接复制过来的)
4、写好忽略文件
5、git add .
6、git commie -m '我的第一次'
7、git push origin master
8、以后都开发当时拉下来这个文件夹
注意:
如果某个文件或文件夹已经被版本管理了,后期再设置忽略,就无效了
如何让它再被忽略呢?
把这个文件删除后,以后就被忽略了
协同开发之项目参与者
作为项目的创建者,我们需要本地拉取代码
操作:
1、克隆到本地:git clone 本地
git clone git@gitee.com:liuqingzheng/luffy_api.git
2、使用pycharm打开项目
3、本地运行项目
选解释器,创建虚拟环境,根据 requirements.txt 安装依赖,本地数据库链接配置好
pythonmkvirtualenv -p python38 luffy001 pip install -r requirements.txt
4、开发代码,本地提交,推到远端
协同开发演示
第一个人
1、组长,把你加成开发者
git clone https://gitee.com/liuqingzheng/luffy_api.git
2、使用pycharm打开
3、git 操作
修改 user 的app下 init.py,写入
pythonprint("hello world") git add . git commit -m '' git push origin master
------先提交的----
第二个人
1、拉取(本地早就有)
git clone https://gitee.com/liuqingzheng/luffy_api.git
2、使用pycharm打开
3、git 操作
修改 user 的app下 init.py,写入
pythonprint("lqz") git add . git commit -m '' git push origin master
------不允许提交,跨版本了------
pythongit pull origi,n master # 拉取远端和本地保持一致 # 我出冲突了,解决冲突 # 再提交 git add . git commit -m '处理问题' git push origin master
冲突问题的出现
协同开发---出现冲突
1、多人在同一分支开发出现的冲突
2、分支合并出现冲突
分支合并出冲突
1、创建dev分支
2、创建bug分支
3、在bug分支修改 settings.py---数据库链接 改成localhost
4、合并进主分支---没有冲突
5、dev分支开发,新增一个xx.py 文件---提交到版本库
6、settings.py---数据库链接 改成localhost---提交到版本库
7、跟主分支合并--出冲突---解决冲突
冲突的样子
python<<<<<<< HEAD print('sssssl') ======= print('lsssss') >>>>>>> dev
多人在同一分支开发出现冲突
张三:
git pull origin master
xx.py 第四行加入 print('张三')
git add .
git commit -m '加了张三'
git push origin master
我:
1、如果我pull,在最新的基础上,写,不会出冲突
git pull origin master
2、我没有pull,尽管写---写了同一个位置,pull下来就会冲突
解决冲突,重新提交
python<<<<<<< HEAD print("lqz") ======= print('hello world') # 1111 >>>>>>> a48c6510d7097240fa69bbea4ff0658b60768dea
线上分支合并
之前学过,本地分支合并:git merge 分支名
学习直接在线上合并分支
本地和线上分支同步
远程创建分支,拉取到本地
远程创建分支,拉取到本地
点点点创建
在本地执行:
pythongit pull origin # 拉下来,但是看不到,只有切进去才能看到 git checkout bug
本地创建,推送到远端
本地创建分支
pythongit branch dev git checkout dev # 切到dev分支 git push origin dev # 把本地当前分支,推动到远端dev分支
线上分支合并
在本地dev分支加入xx.py 加入 一句话
推送到远端 dev分支
在远端 把dev合并进master
你提合并请求--领导审核代码---同意---合进来
commit 的时候,单引号和双引号有区别
pycharm使用git
之前所有敲命令的地方,使用pycharm点点点都能完成
为开源项目贡献代码
1、看到开源代码
2、 fork---在你的仓库中就看到了这个项目
3、clone下来,修改代码
4、推送到自己的仓库汇总
5、提交pr pull request
6、等待作者审核---审核过了,同意---跟线上分支合并一样