首页 > 其他分享 >PyCharm Git 使用

PyCharm Git 使用

时间:2023-01-10 18:34:00浏览次数:52  
标签:git Git master 提交 使用 PyCharm 远程 分支

Pycharm git 使用

工作区和暂存区

  工作区和暂存区 - 廖雪峰的官方网站

  为什么把这个放这里,我觉得理解这两个概念,可以帮助我们更好的使用git,在脑海里面大概知道git在做什么。

工作区(Working Directory)

  就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区:

  working-dir

版本库(Repository)

  工作区有一个隐藏目录.git​,这个不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master​,以及指向master​的一个指针叫HEAD​。

  image-20211212124944809

  文件往Git版本库里添加的时候,是分两步执行的:
第一步是用git add​把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit​提交更改,实际上就是把暂存区的所有内容提交到当前分支。
因为我们创建Git版本库时,Git自动为我们创建了唯一一个master​分支,所以,现在,git commit​就是往master​分支上提交更改。
你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。
所以,git add​命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit​就可以一次性把暂存区的所有修改提交到分支。

working tree clean

$ git status
On branch master
nothing to commit, working tree clean

  所谓的working tree clean指的是

  git add 以后这样

  git-stage

  执行git commit就可以一次性把暂存区的所有修改提交到分支,stage干净了,就是working tree clean

  git-stage-after-commit

分支管理

  分支管理 - 廖雪峰的官方网站

  在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向mastermaster才是指向提交的,所以,HEAD指向的就是当前分支。

  一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点:

  git-br-initial

  每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长。

1.集成git

  现在一般都会自动检测

  image-20211212123614231

2.集成GitHub

  我的已经登录好了。

  image-20211212123726852

3.打开版本控制

  通过 Pycharm 打开你的项目,然后

  image-20211212123039403

  image-20211212123058203

  点击确定以后,会提醒你

  image-20211212123220168

  这时候,项目里面会生成一个隐藏的.git文件夹

  这里就是git的创建版本库环境,.git文件夹里面是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。

  image-20211212123401892

  image-20211212123935017

4.在github上共享项目

  image-20211212125952077

  image-20211212130052883

  image-20211212130101366

  添加之后就会推送

  image-20211212130638045

  打开github,推送成功。

  image-20211212130709946

5.添加项目文件

  新建一个py文件

  image-20211212130835436

  这里的添加就是git add命令

  添加以后,进入了暂存区,git 就会跟踪这个文件,git status 就是tracked

  如果不添加,文件位于工作区,git status就会显示Untracked files,在pycharm里面颜色是红色。

  image-20211212131425017

  image-20211212131505509

  这里的提交就是git commit命令

  提交以后,文件进入了本地仓库,即进了分支master或其他分支。文件颜色成为无色,如图git-learn

  image-20211212131734502

  有三个文件被提交到了本地仓库,两个文件被忽略了,现在我们推送到github.

  image-20211212134211624

  image-20211212134307812

  这样我们就能在github上看到了

  image-20211212134554332

6.通过文件名颜色识别文件状态。

红色

  表示在工作区,创建时没有添加的文件,可以手动添加

  image-20211212132245722

淡黄色

  忽略以后的文件是淡黄色的,不会被上传到github。

  忽略文件,忽略文件有两种方式,第一种比较推荐,他会在项目里面创建.gitignore文件,在里面你可以看到自己忽略了哪些文件,这个似乎是插件的功能。

  image-20211212132910757

  第二种方式是在.git隐藏文件夹里面来标明的。

  image-20211212132738470

  忽略以后的文件是淡黄色的

  image-20211212132604480

绿色

  表示在暂存区

  image-20211212131505509

蓝色

  表示文件有修改,位于暂存区,没有提交。

  image-20211212131928743

无颜色

  表示位于本地仓库区或已经提交到远程仓库区,我这里是提交到了本地仓库区。

  image-20211212131734502

  由暂存区提交到仓库以后,又变为了无色

  image-20211212132034980

  image-20211212132121766

7.分支操作

  本地主分支名为master,远程主分支为origin/master

  通过pycharm使用git[图文详解] - 三流码农 - 博客园

  默认初始化完的工程会有一个master分支,我们一般在dev分支上开发,之后测试没问题再合并到master上,现在就新建一个dev分支
在pycharm的右下角有git的相关分支信息(前提是用了git),可以看到当前只有一个master分支(本地和origin)

  image-20211212134846288

  从origin master checkout一个分支到本地命名为dev

  image-20211212135143497

  image-20211212135158901

  image-20211212135328276

  从远程签出一个分支到本地,名为div,注意,这个dev实际是本地的,origin并没有dev分支

  一般情况下就在本地的dev上开发即可,开发完就可以删掉这个本地dev分支了,如果想在origin上也创建一个dev分支,需要推送一下。

  image-20211212135806127

  现在github上就有了两个分支

  image-20211212135901783

  我这里的理解是从本地或者远程都可以拉取一个分支,现在试一下。从本地master拉取一个div2分支

  image-20211212135943142

  现在github上有了三个分支,分支div和master一样,我没修改。

  image-20211212140153896

  div2有个如图所示的文件,其他一样

  image-20211212140244722

checkout

  当前分支div2

  image-20211212144456398

  切换分支,点击右下角分支名称,选择要切换的分支,点击【Checkout】后,等待分支切换成功,

  image-20211212144235960

  我们可以看到,切换回嘞master分支 ,本地拉取分支div2.py文件不见了。

  image-20211212144408510

  分支代码提交并push后

  image-20211212145108450

  可合并分支,首先切换到要合并的分支上(此处切到master主线),点击分支名称,选择要被合并的分支,点击【Merge into Current】,等待合并成功

  image-20211212145230178

  当前分支div2 合并了 div3,多了文件div3.py.

  image-20211212145253576

  分支合并后即可删除分支,删除分支必须先切换到其它分支,如:共有master和dev分支两个分支,若要删除dev,必须先切换到master上,点击左下角Git,选择要删除的远程和本地分支,点击删除图标即可

  image-20211212145451658

8.从远程拉取

  对我来说暂时不太常用,大概测试一下

  在远程仓库div分支新建了README.md文件

  image-20211212153547428

  image-20211212153608267

  image-20211212153716656

  拉取下来了,但是拉取的内容和远程不一样,本地master合并了远程分支。

git pull相当于git fetch与git merge一起使用,但是这样使用容易出错所以推荐第一张方式

  为了拉取下来的分支就是远程的div,我们选择从远程检出(checkout)

  image-20211212155140297

  从远程检出的div成了一个新的本地分支。有了一个README.md

  image-20211212160047835

问题

git查看分支从哪个分支拉出来的?

  看reflog

  或者在创建分支的时候用各种手段记录一下

  git的分支之间没有那种“父子关系”

  有直接关系的是各个commit

  分支只是附加在某个commit上的引用

哪些推送哪些不推送

  但是,并不是一定要把本地分支往远程推送,那么,哪些分支需要推送,哪些不需要呢?

  • master分支是主分支,因此要时刻与远程同步;
  • dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
  • bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
  • feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。

  总之,就是在Git中,分支完全可以在本地自己藏着玩,是否推送,视你的心情而定!

  对我来说即是:

  backbone的本地主分支和远程主分支时刻同步,以远程分支为主要,确定无误后推送到远程分支。

  然后我需要加方法的时候就拉取分支,命名为backbone_方法名,然后有效果的就推送到远程分支,无效的留在本地分支以后使用。

  关于Rebase

  image-20211212160625447

  变基只是让快照变成了一条时间线上,git log --graph 会看起来好看些。 而且在自己的本地工作区操作变基没什么问题,如果是多人合作,别人更改后的内容push到了公共库中,可能他也进行了rebase后push的,你拉过来后,直接合并,查看日志就会看到很混乱的两个一模一样的提交日志。我也不知道我在讲啥,反正我是去看了官方文档后,才一知半解的。我个人觉得工作中没有要求用变基,就不要用了

后期的一些实战

  我在别的分支上编写代码以后,如果不提交,直接又转到别的分支,那么在那个分支上编写的代码,会出现在新检出的分支上。

  ‍

标签:git,Git,master,提交,使用,PyCharm,远程,分支
From: https://www.cnblogs.com/CLiuso/p/pycharm-git-use-1hf8i4.html

相关文章

  • 【安全记录】certutil实战使用总结
    前言在先知看到一篇关于certutil命令的文章(关于certutil的探究),讲得很详细、很全面。特此记录下本人在渗透时使用certutil的一些方法。在cmd下使用certutil下载远程文件......
  • git reset 回滚
    1.通过gitlog查到要回滚到的commitId比如:回滚到”第一次“,即jlasjdlfjsd944jdlsjf498ndla 第三次01038lsdjfsd第二次jlasjdlfjsd944第一次2.gitreset jlasjdl......
  • python 使用函数名的字符串调用函数(4种方法)
    先看一个例子:>>>deffoo():print"foo">>>defbar():print"bar">>>func_list=["foo","bar"]>>>forfuncinfunc_list:func()TypeError......
  • pycharm:无法加载文件 C:\Users\admin\PycharmProjects\pythonProject1\venv\Scr
    以前一直在vmware虚机上用pycharm,这次想在win10pc上试试 安装pycharm后,打开终端直接报错:无法加载文件C:\Users\admin\PycharmProjects\pythonProject1\venv\Scripts......
  • 10-使用Apriori算法进行关联分析
    title:10-使用Apriori算法进行关联分析date:2021-01-1810:58:30permalink:/pages/8c2d6b/......
  • github vscode-markdown-preview-enhanced 自定义主题
    ctrl+shift+p,MarkdownPreviewEnhanced:CustomizeCSS打开之后,把.markdown-preview-enhanced.markdown-preview给删掉https://github.com/shd101wyy/vscode-ma......
  • 帆软使用
    一、鼠标放置区域出现悬浮文本或者图片步骤:在【模板】-【模板web属性】-【分页预览设置】-【事件设置】点击添加选择【加载结束】在javaScript区域输入:_g().addEffect('......
  • git---本地查看远程仓库地址
    在用VUE开发项目的时候,有时候需要去gitee里面查看仓库的地址,或者是git下来的项目,有时候会忘记远程仓库的地址。查看方法很简单:gitremote-vgitremote-v然后就可以......
  • 事件处理_1事件的基本使用
    事件处理_1事件的基本使用<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>事件的基本使用</title><scriptsrc="../js/vue.js"></......
  • Google Cloud Platform | 使用 Terraform 的分层防火墙策略自动化
    【本文由CloudAce整理发布,更多内容请访问CloudAce官网】防火墙规则是GoogleCloud中网络安全的重要组成部分。GoogleCloud中的防火墙大致可分为两种类型;网络防火墙......