Git的使用

远程仓库命令

新增远程仓库: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的了,而是

python 复制代码
git@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 安装依赖,本地数据库链接配置好

python 复制代码
mkvirtualenv -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,写入

python 复制代码
print("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,写入

python 复制代码
print("lqz")
git add .
git commit -m ''
git push origin master

------不允许提交,跨版本了------

python 复制代码
git 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 分支名

学习直接在线上合并分支

本地和线上分支同步

远程创建分支,拉取到本地

远程创建分支,拉取到本地

点点点创建

在本地执行:

python 复制代码
git pull origin  # 拉下来,但是看不到,只有切进去才能看到
git checkout bug

本地创建,推送到远端

本地创建分支

python 复制代码
git 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、等待作者审核---审核过了,同意---跟线上分支合并一样

今日思维导图:

相关推荐
和你一起去月球9 小时前
TypeScript - 函数(下)
javascript·git·typescript
我不是程序猿儿10 小时前
【GIT】TortoiseGit的变基(Rebase)操作
git
yyycqupt17 小时前
git使用(一)
git
Kkooe20 小时前
GitLab|数据迁移
运维·服务器·git
Beekeeper&&P...21 小时前
git bash是什么,git是什么,git中的暂存区是什么,git中的本地仓库是什么,git中工作目录指的是什么
开发语言·git·bash
Stara05111 天前
Git推送+拉去+uwsgi+Nginx服务器部署项目
git·python·mysql·nginx·gitee·github·uwsgi
lsswear1 天前
GIT 操作
git
勋勋勋勋小勋勋1 天前
git分支合并某一次提交
git
PandaCave1 天前
git常用命令以及注意事项总结
git