PyCharm配置及使用Git教程

文章目录

  • 1. 安装PyCharm
  • 2. 安装Git
  • 3. 在PyCharm中配置Git插件
  • 4. 连接远程仓库
  • 5. Clone项目代码
  • 6. 将本地文件提交到远程仓库
    • 6.1 git add
    • 6.2 git commit
    • 6.3 git push
    • 6.4 git pull
  • 7. 代码回滚
  • 8. 分支操作
    • 8.1 新建分支
    • 8.2 切换分支
    • 8.3 合并分支
    • 8.4 删除分支
  • 9. 解决本地和远程冲突
    • 9.1 Merge操作
    • 9.2 stash操作
  • 10. 取消commit
    • 10.1 取消没有push的commit
    • 10.2 取消已经push的commit
  • 参考资料

平时习惯在Windows下开发,但是我们又需要实时将远方仓库的代码clone到本地,也需要将自己修改的代码push到远端服务器。下面是Windows下Pycharm的配置Git步骤:

1. 安装PyCharm

此处略过。

2. 安装Git

参考博客:Windows下Git及TortoiseGit安装、配置及使用

3. 在PyCharm中配置Git插件

选择 File -> Settings -> Version Control -> Git
配置Git的安装路径,并点击Test按钮测试是否配置成功。
在这里插入图片描述
弹出Git版本号,即配置成功。

在这里插入图片描述

4. 连接远程仓库

选择 VCS --> Get from Version Control

在这里插入图片描述

注意:这里本地工程路径要求是空目录!

5. Clone项目代码

配置好Git远端仓库地址和本地工程路径后,点击页面右下角的Clone按钮,即可拉取项目代码。
在这里插入图片描述

6. 将本地文件提交到远程仓库

6.1 git add

右击你们想要提交的文件,点击Git->Add。如果使用过Git 命令的应该都知道,这个就相当于 git add 文件名称。

或者从顶部任务栏进入:VCS -> Git -> Add。
在这里插入图片描述

6.2 git commit

右击文件名 -> Git -> Commit File。 和git commit -m <描述>命令是一样的。

在这里插入图片描述

6.3 git push

右击文件名 -> Git -> Repository -> push
也可以使用快捷键:Ctrl + Shift + K

在这里插入图片描述

6.4 git pull

右击文件名 -> Git -> Repository -> pull

7. 代码回滚

为了演示如何利用PyCharm将Github上的代码进行回滚,我们再进行一次提交,这次将Version改为3.0,并按照刚才仓库更新的步骤进行提交。在PyCharm的左下角的Version Control中可以查看到三次提交的记录,如下图:
在这里插入图片描述

也可以通过点击修改过的文件,通过Git -> History 进行查看:
在这里插入图片描述

选择需要回退的版本文件,右键选择revert,即可回退到对应版本。

再来看工程里的文件,变成了蓝色。我们需要再次commit及push,才能将代码回滚后的版本提交到远程仓库中。
在这里插入图片描述

8. 分支操作

用PyCharm打开clone至本地的项目后,IDE右下方下面的Git:master可以查到到该项目的分支信息,如下图:

在这里插入图片描述

8.1 新建分支

选择“+ New Branch” 可以新建分支,我们来建一个名为 1.0.0 的新分支:
在这里插入图片描述

创建好后会发现右下方的“Git:master”已显示为“Git:1.0.0”,说明项目在本地的分支已经切换至1.0.0分支。
我们在本地1.0.0分支中做的代码修改操作,可以通过Git commit及push操作提交到远程仓库的1.0.0分支中。
在这里插入图片描述

8.2 切换分支

PyCharm中的分支切换十分简单,我们再次点击右下角本地的当前分支下的“Git: 1.0.0”。选择需要切换的分支,如master,再点击checkout即完成分支切换。

在这里插入图片描述

8.3 合并分支

如果我们还需要将1.0.0分支合并至master分支。首先将项目切换至master分支,右击 --> Git --> Repository --> Merge Changes。

在弹出的弹框中,选择需要合并的分支为本地的 1.0.0 分支,并写好Commit Message,如下图:
在这里插入图片描述
点击“Merge”按钮后,该项目就已经合并成功。

如果我们还想把合并后的master分支提交到Github上,这时候我们需要注意,右击选择Git后,先选择“Add”再push到Github,注意,是选择“Add”,而不是“Commmit Directory”。这时候我们再查看Github上master分支中的内容,如下:
在这里插入图片描述
可以看到,远程分支已经合并成功了,我们成功地将1.0.0分支中的修改内容合并到master分支了。

8.4 删除分支

分支删除的操作也十分简单,和分支切换的操作很类似,我们点击右下角的“Git master”,点击需要删除的test本地分支,再选择“Delete”即可。

9. 解决本地和远程冲突

注意:在提交本地代码前,一定要先pull远程仓库,再push !!!

9.1 Merge操作

在实际使用中,我们一般是多人协作,可能提交之前,远程仓库已经更新了,为了避免不必要的麻烦,我们要先pull同步再push。

在git页面上,在线编辑test.py文件,模拟其他人的提交。
在这里插入图片描述
在本地修改test.py:
在这里插入图片描述
并新建一个提交至远端 1.0.0 分支,系统拒绝了本次push,原因是远端仓库的文件已经发生了变化。这里,我们通常选择 Merge操作来解决冲突。
在这里插入图片描述

这里,因为我们在本地修改了test.py 文件,并commit到了本地分支,而远程仓库的 test.py
文件也进行了修改,这个时候就有了冲突。选择Merge后有三个选项,accept left为保存本地的修改,accept
right为保存远程的修改,中间的为你手动merge后的结果。

9.2 stash操作

参考博客:解决因为本地代码和远程代码冲突,导致git pull无法拉取远程代码的问题

可以先将本地内容stash到仓库中,执行stash操作后,本地代码将返回到修改前的内容。这时,就可以正常将远程代码下载到本地了。然后再通过stash操作将仓库中的内容合到本地,如果有冲突就可以进行解决了。

10. 取消commit

10.1 取消没有push的commit

右键local下对应分支的提交,点击undo commit即可,如果要取消多个,从上到下取消,不要从中间取消。

10.2 取消已经push的commit

右键remote下的对应分支的提交,点击revert commit,然后commit,会自动给你加上revert …的提交信息,再push,远程仓库就更新到上一个版本了。
原理就是反向提交,把上一个版本的文件提交过去,还原为上一个版本

参考资料

  • 利用PyCharm操作Github:仓库新建、更新,代码回滚
  • 利用PyCharm操作Github(二):分支新建、切换、合并、删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/78040.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《TCP/IP网络编程》阅读笔记--I/O复用

目录 1--基于I/O复用的服务器 2--select()函数 3--基于I/O复用的回声服务器端 4--send()和recv()函数的常用可选项 5--readv()和writev()函数 1--基于I/O复用的服务器 多进程服务器端具有以下缺点&#xff1a;当有多个客户端发起连接请求时&#xff0c;就会创建多个进程来…

第27章_瑞萨MCU零基础入门系列教程之freeRTOS实验

本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写&#xff0c;需要的同学可以在这里获取&#xff1a; https://item.taobao.com/item.htm?id728461040949 配套资料获取&#xff1a;https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总&#xff1a; ht…

企业架构LNMP学习笔记29

Nginx负载均衡配置&#xff1a; 架构分析&#xff1a; 1&#xff09;用户访问请求Nginx负载均衡服务器&#xff1b; 2&#xff09;Nginx负载均衡服务器再分发请求到Web服务器。 实际配置负载均衡&#xff0c;只需修改作为负载均衡服务器的Nginx即可&#xff0c;当前架构中的…

用冒泡排序完成库函数qsort的作用

Hello&#xff0c;今天分享的是我们用冒泡函数实现qsort&#xff0c;也就是快排&#xff0c;之前我们也讲过库函数qsort的使用方法&#xff0c;今天我们尝试用冒泡函数实现一下&#xff0c;当然我们也见过qsort&#xff0c;后面也会继续完善的。这几天我是破防大学生&#xff0…

Debian11安装PostgreSQL+PostGIS+pgRouting ,链接Navicat

船新版本&#xff0c;遵循官网教程 1 准备一个Debian11系统2 从官网安装Postgres2.1 安装Postgres2.2 修改Postgres密码2.3 配置Postgres远程访问 3 安装Postgis、pgRouting4 链接Navicat 1 准备一个Debian11系统 2 从官网安装Postgres 2.1 安装Postgres 1 进入Postgre的官网…

第一类曲线积分与二重积分在极坐标系下表示的区别

1.第一类曲线积分与二重积分在极坐标系下表示的区别 区别主要来源于一是曲线积分的积分区域为边界&#xff0c;而二重积分的积分区域为内部边界&#xff0c;二是极点位置选取的不同&#xff0c;二者共同造成在积分区域在极坐标下表示的不同&#xff0c;即 ρ \rho ρ是常量还是…

uboot 顶层Makefile-make xxx_deconfig过程说明三

一. uboot 的 make xxx_deconfig配置 本文接上一篇文章的内容。地址如下&#xff1a;uboot 顶层Makefile-make xxx_deconfig过程说明二_凌肖战的博客-CSDN博客 本文继续来学习 uboot 源码在执行 make xxx_deconfig 这个配置过程中&#xff0c;顶层 Makefile有关的执行思路。 …

spring boot+redis整合基础入门

文章目录 前言准备依赖项配置文件redis模板类注入设置序列化方式 实施基础字符串操作、超时设置Hash操作hash的使用场景以及优缺点 列表操作列表操作的应用场景以及优缺点 Set的基础操作Set类型的业务场景以及优缺点Demo地址 总结 前言 最近项目中有用到redis进行一些数据的缓…

导数公式及求导法则

目录 基本初等函数的导数公式 求导法则 有理运算法则 复合函数求导法 隐函数求导法 反函数求导法 参数方程求导法 对数求导法 基本初等函数的导数公式 基本初等函数的导数公式包括&#xff1a; C0(x^n)nx^(n-1)(a^x)a^x*lna(e^x)e^x(loga(x))1/(xlna)(lnx)1/x(sinx)cos…

阿里云服务器配置怎么选择?几核几G?带宽系统盘怎么选?

阿里云服务器配置选择_CPU内存/带宽/存储配置_小白指南&#xff0c;阿里云服务器配置选择方法包括云服务器类型、CPU内存、操作系统、公网带宽、系统盘存储、网络带宽选择、安全配置、监控等&#xff0c;阿小云分享阿里云服务器配置选择方法&#xff0c;选择适合自己的云服务器…

用selenium webdriver获取网站cookie后,实现免登录上网站

以csdn为例&#xff0c;代码分为两部分。 一、csdn_get_cookies.py为半手动登录网站后获取cookies 二、csdn_use_cookies.py为使用获取到的cookies免登录上网站 #获取登录cookiesfrom selenium import webdriver import jsoncsdn_driver webdriver.Chrome() url "htt…

ChatGPT OpenAI 完成Excel组合函数Vlookup+match多条件查找

ChatGPT OpenAI 现在已经助力职场办公。 我们现在有这样一个Excel需求: 根据姓名与科目查找对应的分数。可以使用Vlookup+match组合函数一起来实现 。 我们将公式复制到Excel中来进行验证。 ChatGPT生成的Excel函数公式可以直接进行使用。 更多实战内容。

Android:使用命令行发现keytool不是内部命令解决办法

一、前言&#xff1a;最近在搞引入高德地图的SDK&#xff0c;发现需要给app签名打包。记录一下。 二、当我在命令行中输入keytool的时候说keytool不是内部命令 解决方案&#xff1a; 找到系统属性--------高级----------点击环境变量 双击点开 找到java\jre1.8.0_202\bin新建…

CSS3技巧36:backdrop-filter 背景滤镜

CSS3 有 filter 滤镜属性&#xff0c;能给内容&#xff0c;尤其是图片&#xff0c;添加各种滤镜效果。 filter 滤镜详见博文&#xff1a;CSS3中强大的filter(滤镜)属性_css3滤镜_stones4zd的博客-CSDN博客 后续&#xff0c;CSS3 又新增了 backdrop-filter 背景滤镜。 backdr…

SAP SD之定义装运点OVL2

什么是装运点&#xff1f; 装运点是一个独立的组织实体&#xff0c;其中进行货物的发行和交付处理。 可以为每个订单商品确定一个装运点。 确定装运点取决于以下三个因素&#xff1a; 客户主记录中的运输条款和条件&#xff08;运输屏幕&#xff09;。 例如&#xff0c;公司与…

180B参数的Falcon登顶Hugging Face,vs chatGPT 最好开源大模型使用体验

文章目录 使用地址使用体验test1:简单喜好类问题test2:知识性问题test3:开放性问题test4:中文支持test5:问题时效性test6:学术问题使用地址 https://huggingface.co/spaces/tiiuae/falcon-180b-demo 使用体验 相比Falcon-7b,Falcon-180b拥有1800亿的参数量

程序员面试逻辑题

红白帽子推理 答案&#xff1a; 这个题有点像数学归纳法&#xff0c;就是假设有 A A A和 B B B两个人是黑色的帽子&#xff0c;这样的话第一次开灯&#xff0c; A A A看到 B B B是黑色的&#xff0c;其他人都是白色的&#xff0c;那么 A A A会觉得 B B B是那个黑色的&#xff0…

第28章_瑞萨MCU零基础入门系列教程之基于面向对象的工程结构

本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写&#xff0c;需要的同学可以在这里获取&#xff1a; https://item.taobao.com/item.htm?id728461040949 配套资料获取&#xff1a;https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总&#xff1a; ht…

c刷题(四)

获得月份天数 获得月份天数_牛客题霸_牛客网 这道题可以用switch case语句解&#xff0c;不过这道题更简单的方法是数组&#xff0c;关键点在于判断是否为闰年。 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include<assert.h> int year_run(int n) …

算法-27.移除元素-⭐

给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面…