Git实用教程及与Pycharm的集成

版本控制

公司项目管理,协同式开发必不可少;

Git与SVN的区别

SVN

集中式版本控制系统,即所有的数据都存放在中央服务器上,用户的本地只有以前所同步的版本,如果不联网的 话,用户就看不到历史版本;而且所有数据都保存在单一的服务器上,有很大的风险。

版本库集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己完成的活推送到中央服务器。必须联网才能工作,对网络带宽要求较高。

Git

Git实用教程及与Pycharm的集成_第1张图片
<目前世界最先进的>分布式版本控制系统

所有的版本信息仓库都同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在联网时push到相应的服务器或其它用户那里。数据存储和恢复比较有保障,但怎加本地空间的占用

下载:利用淘宝镜像网站下载,http://npm.taobao.org/mirrors/git-for-windows/

Git环境配置

启动Git

Git Bash: Unix与linux风格的命令行,使用最多,推荐最多;

Git CMD: Windows风格的命令行

Git GUI: 图形界面的Git,不推荐学

Git配置

所有的配置文件其实都保存在本地!

基础查询

查看配置:git config -l
Git实用教程及与Pycharm的集成_第2张图片
查看不同级别的配置文件:

# 查看系统config
$ git config --system --list
# 查看当前用户(global)配置
$ git config --global --list

Git相关的配置文件:

1)Git\mingw64\etc\gitconfig Git安装目录下的gitconfig --system 系统级

2)C:Users\Administrator\ .gitconfig 只适用于当前登录用户的配置 --gobal全局

这里可以直接编辑配置文件,通过命令设置后会响应到这里。

设置用户名和邮箱

​ 当你安装Git后首要做的事就是设置用户名和e-mail地址,因为每次Git提交都会使用该信息,它会永远嵌入到你的提交中:

git config --global user.name "Shisexy" #名称
git config --global user.email [email protected] #邮箱

global全局设置,不针对某一项目而全部使用该信息,若想特定项目特定设置,则不要加global

Git工作原理

Git实用教程及与Pycharm的集成_第3张图片
work space 工作区,平时存放代码的地方

index / Stage 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息

Repository 仓库区(本地仓库),存放数据的位置,这里面有你提交到所有版本的数据,其中HEAD指向最新放入仓库的版本

Remote 远程仓库,托管代码的服务器
Git实用教程及与Pycharm的集成_第4张图片

工作流程

git的工作流程一般是这样的 :
1、在工作目录中添加、修改文件
2、将需要进行版本管理的文件提交到git仓库
3、将暂存区域的文件提交到git仓库。
因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
Git实用教程及与Pycharm的集成_第5张图片

项目创建

创建工作目录与常用指令

工作目录一般就是你希望Git帮助你管理的文件夹,可以是你的项目的目录,也可以是一个空目录,建议不要用中文。日常6个命令如下
Git实用教程及与Pycharm的集成_第6张图片

搭建本地仓库

搭建方式有两种:一种创建全新的仓库;另一种是克隆远程仓库。

方式一

​ 需要用Git管理的项目的根目录执行:

# 在当前目录新建一个Git代码库
$ git init

执行后可以看到,仅仅在项目目录中多出一个.git目录,关于版本等的所有信息都在这个目录里面。

方式二

​ 将远程服务器上的仓库完全镜像一份至本地!

# 克隆一个项目和它的整个代码历史(版本信息)
$ git clone [url]

不妨去gitee或者github上克隆一个测试
Git实用教程及与Pycharm的集成_第7张图片
Git实用教程及与Pycharm的集成_第8张图片

网络正常,不出意外在我们的电脑上多了git_test这一文件夹,远程仓库中的全部文件克隆到此文件夹下。

Git文件操作

Git实用教程及与Pycharm的集成_第9张图片

查看文件状态

​ 上面所说的4种状态,可以通过如下命令可以查看文件的状态:

# 查看指定文件状态
$ git status [filename]
# 查看所有文件状态
$ git status
# git add .			添加所有文件到暂存区
# git commit -m"备注信息"		提交暂存区中的内容到本地仓库(-m后是提交时附上的备注信息) 

忽略文件

​ 有时候我们不想把某些文件纳入版本控制中,比如一些临时生成文件等;可以在主目录下新建“.gitignore”文件,此文件有如下规则:
Git实用教程及与Pycharm的集成_第10张图片
举例:Git实用教程及与Pycharm的集成_第11张图片

使用码云

​ 相比GitHub,码云(Gitee)可能更易于接受和理解,因为是中文嘛!所以后续都是以码云为例进行讲解,GitHub其实大同小异;

1、注册登录码云,完善个人信息。
Git实用教程及与Pycharm的集成_第12张图片

2、设置本机绑定SSH公钥,实现免密码登录!(免密码登录,这一步挺重要的,码云是远程仓库,而我们平时工作在本地仓库!)

# 进入 C:\users\Administrator\.ssh 目录
# 生成公钥
ssh -keygen

公钥配置文件路径
Git实用教程及与Pycharm的集成_第13张图片
备注:-t rsa 是在指定加密算法为 rsa

3、将公钥信息public key 添加到码云账号中即可Git实用教程及与Pycharm的集成_第14张图片

4、使用码云创建一个自己的仓库

Step_1:
Git实用教程及与Pycharm的集成_第15张图片
Step_2

Git实用教程及与Pycharm的集成_第16张图片
许可证:开源是否可以随意转载等协议,规定(可以私下研究);

前后截图可能不一致是因为后续补上的,大可不必在意,知道意思即可

Git实用教程及与Pycharm的集成_第17张图片
Step_3

​ 克隆到本地后,对比远程仓库是否一样?

Pycharm中集成Git

​ 也许很多人会发现Pycharm版本控制对Gitee的支持不太友好,因为上面压根没有针对码云用户的登录窗口(只有GitHub,CVS等有限的几个),像其它博主写的窗口配置方法似乎不太奏效;没关系,万变不离其宗,交给大家一个万能的方法…

1.新建项目,绑定Git远程库

  • 事先在Gitee上创建远程仓库(姑且称仓库名为A)

  • 命令行一键将其克隆到本地,git clone(本地会自动生成A目录);本地项目/仓库名若沿用A名称,那直接在此目录下建项目;若想以示区别改换名称,可以另起创建一目录B,并将A目录下的所有文件拷贝到B目录下,后面就都在B目录下开发项目。不错就是这么简单,直接拷贝.git等那些初始文件,这样基本实现了绑定。

  • 拷贝后,pycharm打开项目会提示未找到git执行文件(由于第一次使用git进行版本控制,必然如此),现在你可以去pycharm–setting选项卡中设置了。
    Git实用教程及与Pycharm的集成_第18张图片
    设置后留意工具栏的变化,多了版本控制相关的图标按钮和右键功能;项目.idea目录下出现标红的文件。
    版本控制插件
    不同颜色对应不同状态下的文件,对应含义可参考File Status Colors:

    Git实用教程及与Pycharm的集成_第19张图片
    2.接下来,添加或修改文件状态,可以使用Pycharm提供的GUI工具窗及右键功能操作git,而操作全部文件往往使用命令行更快捷.

  • 添加到暂存区 -----git add .

  • commit 提交 ------git commit -m’备注’

  • push到远程仓库 ------git push

    push可能会弹出Gitee登录窗,若在Pycharm中设置了SSH,是否就不再弹出,待检验。
    Git实用教程及与Pycharm的集成_第20张图片
    3.提交测试,刷新远程仓库
    Git实用教程及与Pycharm的集成_第21张图片
    备注:截至以上都是单个人的操作,不涉及合作开发

说明:Git分支

分支在Git中相对较难,分支就是科幻电影里面的平行宇宙,如果两个平行宇宙互不干扰,那对现在的你也没有啥影响。不过,在某个时间点,两个平行宇宙合并了,我们就要及时处理一些问题。
Git实用教程及与Pycharm的集成_第22张图片
Git实用教程及与Pycharm的集成_第23张图片
git分支中常用命令:

# 列出所有本地分支
$ git branch
# 列出所有远程分支
$ git branch -r
# 新建一个分支,但依然停留在当前分支
$ git branch [branch-name]
# 新建一个分支,并切换到该分支
$ git checkout -b [branch]
# 合并指定分支到当前当前分支
$ git merge [branch]
# 删除分支
$ git branch -d [branch-name]
# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]

你可能感兴趣的:(工具使用,git,pycharm,github)