1、Git介绍
- Git是分布式的版本控制系统,没有中央服务器,每一台电脑就是一个完整的版本库,跨平台工具。
-
Git的工作流程
- 1、从远程仓库克隆 Git 资源作为本地仓库
- 2、从本地仓库中 cheekout 代码然后进行代码修改
- 3、在提交前先将代码提交到暂存区
- 4、提交修改,提交到本地仓库。——本地仓库中保存修改的各个历史版本
- 5、在修改完成后,需要和团队共享代码时,可以将代码push到远程仓库。
2、原生Git + TortoiseGit的安装
- 下载链接:https://git-scm.com/downloads
- 安装Git的时候默认选项安装,安装的文件在C:\Program Files\Git中
- 鼠标右击:出现Git就说明工具可用(Git GUI图形界面 和Git Bash命令行)
- git的命令行和windows的cmd差不多,相当于在windows系统中模拟了一个Linux环境
查看git版本
:git --version- 一般使用原生的Git比较少,可以使用 乌龟Git(Tortoise Git)
-
Tortoise Git
- 链接:https://tortoisegit.org/download/
安装注意
:Choose SSH Client的时候选择OpenSSH,Git default SSH Client- 默认的目录:C:\Program Files\TortoiseGit
重点
:手动配置原生Git的位置,也就是默认的:C:\Program Files\Git- 剩下的默认
- 团队协作的时候需要填写自己的姓名与邮箱
- 下一步:默认勾选OpenSSh,不变,安装完成
- 鼠标右击:出现Tortoise Git
3、创建版本库(本地仓库)
-
3.1 初始化本地仓库
-
3.2 将文本文件暂存到暂存区
注意:
.git就是本地版本库,包含.git的文件夹就是当前的工作目录,如果想在本地仓库中添加文件,这个工作文件必须在工作目录下,也就是.git管理当前文件夹下的所有文件,将这文件夹下的文件管理进本地仓库- 步骤:
- 1、在
.git
文件夹下创建新文件; - 2、创建好之后,选中文件,鼠标右击;
- 3、使用Tortoise Git将创建的文件Add到本地仓库中,点击OK;
- 4、在当前文件夹的空白处右击鼠标:Git commit master;
- 5、在massage中填写当前提交的日志信息,必填项
- 1、在
- 名词解释:
- 工作目录:电脑里能看到的目录,比如 repositorys 就是一个工作目录(包含本地仓库的目录)
- 工作区:包含有.git文件的文件夹
- 版本库:就是.git文件
- .git的文件夹中存放了很多东西,其中最重要的时成为stage(或者叫index)的暂存区,还有git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
4、修改文件内容并提交
-
4.1 使用TortoiseGit查看本地仓库文件:
- 进入.git同级文件夹,空白处鼠标右击,选择TortoiseGit,选择Repo-browser
- 进入仓库查看文件信息,能看到成功添加进仓库的文件
-
4.2 修改仓库文件
- 1、修改文件
- 2、空白处鼠标右击,TortoiseGit commit master,添加日志文件,点击commit
-
4.3 查看文件的修改历史
- .git文件同级目录鼠标右击,TortoiseGit,选择Show log,就能查看修改日志的情况
查看两次修改文档的差异:
按住ctrl+对比文件,鼠标右击,compare revisions,跳出一个窗口,双击窗口中需要查看的文件,自动跳转打开对比文档,就能看到文档差异
5、文件的删除 + 误删还原
- 5.1 删除本地文件,仓库文件不变:
- 1、正常删除文件+提交版本
- 2、使用TortioseGit删除文件,仅仅是删除本地,仓库中任然是有文件,能还原
- 误删还原:
- 5.2 空白处鼠标右击,TortoiseGit–>Revort–>确定还原的文件,点击开始还原,其实是从本地仓库.git中还原到当前工作区
- 5.3 删除仓库+保留本地副本
- 选中文件:选中文件,鼠标右击,Delete keep local,确定
- 此时当前文件被打上了仓库删除的标签
- 直接本地提交文档,此时仓库的文档就被删除了,本地的文档任然是保留的
6、工程文件夹保存到仓库
- 工程中包含有很多文件夹,其中有一些编译器的配置文件不用上传到仓库
- 常见的保存文件逻辑是:
-
1、将工程复制到.git同级文件夹下;
-
2、选中工程文件夹,使用TortoiseGit将文件Add到本地仓库中;
-
3、在工程文件夹中找到不需要保存到仓库的文件、文件夹,对其打上不上传的标签,标签的的打法见下方
标签的的打法:
ctrl 选中对应的文件与文件夹,右击鼠标:TortoiseGit,然后选择:Delet and add to ignore list,选择第一行(根据名称删除和忽略),然后文件夹需要递归忽略,选择ignore item(s) recursively(递归),.ihgory文件的保存地址选择第二个,保存到当前文件目录下
-
4、提交到本地仓库。
-
7、与Github上仓库交互
-
1、按照github指引创建新的仓库
- 2、GitHub支持两种通信协议,一种是https(网站使用的是https),一种是ssh(公钥私钥密码体制)
ssh的公钥私钥密码体制
:- 假设是通信双方A、B,一共有两对,公钥+私钥等于一对;
- A掌握=B的公钥+A的私钥,B掌握=A的公钥+B的私钥
- A的公钥加密只能用A的私钥解密,同理
- A的公钥不能解开A的私钥密文
- 基本原则:公钥加密,私钥解密
-
7.1 SSH传输协议上传仓库
- 分常见有3种情况:
- 1、创建本地仓库 + ssh链接GitHub仓库 + 本地的仓库push到GitHub
# 使用echo将“...”的内容原封不动的写入(>>)到README.md文档中 echo "# test" >> README.md # 对当前的仓库进行初始化 git init # 将刚刚创建的README.md添加到本地本地暂存区 git add README.md # 使用git命令将暂存区的README.md文档提交到本地仓库 git commit -m "first commit" # git branch -M main # 本地仓库和远程仓库简历链接 git remote add origin https://github.com/....../....git git push -u origin main ```
- 2、本地已有仓库,先链接GitHub的仓库 + 本地的仓库push到GitHub
git remote add origin https://github.com/wufuming3711/test.git git branch -M main git push -u origin main ```
- 3、别人的仓库导入数据到自己的仓库:GitHub上直接粘贴别人的仓库链接
- 1、创建本地仓库 + ssh链接GitHub仓库 + 本地的仓库push到GitHub
-
使用命令操作:
- 1、登录GitHub,进入仓库选择SSH通信方式,复制GitHub提供的SSH链接
- 2、本地生成密钥对:
- 启动Git Bash,输入:
ssh-keygen -t rsa
,也可以使用ssh-keygen -t rsa -C "我的SSH密钥"
生成时增加注释,连续输入3个空格
即可 - 生成的密钥对生成在:C:\Users\user_name.ssh\文件夹下,一共有3的文件,主要看:id_rsa(没有后缀的是私钥),id_rsa.pub(公钥,告诉GitHub),使用文版编辑器打开公钥,复制公钥
- 回到github,点击自己的头像,进入settings,选择最左侧的SSH and GPG keys
- 点击New SSH Key,粘贴公钥
- 接下来可以使用命令行和仓库进行连接
- 启动Git Bash,输入:
- 3、找到自己的仓库,启动Git Bash,或者启动GitBash然后进入文件夹
- 4、输入:
git remote add origin git@github.com:自己的GitHub提供的SSH复制过来.git
,其中origin是远程仓库的一个别名,一个代号,叫什么无所谓,默认值是origin。回车即可建立连接 - 5、输入:
git push -u origin master
,回车,输入yes - 6、刷新自己的Github web页面即可显示
-
使用Tortoise Git 图形界面
- 1、进入工作区,右击鼠标,点击TortoiseGit–>Git Synchronization…跳转
- 2、点击Remote URL,进入
- 3、填写信息,在Remote部分写入origin(随便的名称),URL处输入GitHub复制来的链接
- 4、Tortoise默认使用的Putty密钥链接,确认之前需要检查,点击左侧Network,进入,查看客户端是否是SSH,如果不是,需要点击浏览,进入git\usr\bin,选中ssh.exe
- 5、Putty部分,打开文件浏览器,进入前面创建的密钥目录,不显示文件,修改文件浏览器,显示全部文件格式,此时能显示密钥,因为密钥是没有后缀的,所以文件浏览器默认不显示,选择私钥
- 6、点击:Add New/Save
- 7、点击确定,跳转界面,点击push进行推送
- 8、进入GitHub查看时候推送成功
- 分常见有3种情况:
-
7.2 https推送(不用密钥对)
- 使用图形工具tortoise,https推送文件到GitHub需要GitHub的账户+密码
- 步骤:
- 1、进入工作区,右击鼠标,点击TortoiseGit–>Git Synchronization…跳转
- 2、点击Remote URL的Mange,进入
- 3、新建自己的origin_1,复制GitHub上的https链接粘贴进去(填写到:URL)
- 4、点击:Add New/Save,然后点击确定
- 5、在Remote URL中选择刚刚创建的origin_1
- 6、点击push
- 7、提示用户名与密码
-
7.3 从别人的仓库克隆到本地
- Github上复制ssh链接
- 本地进入对应文件夹,Git Bash中输入:
git clone git@github.com:自己仓库.git
8 推送修改的文件及冲突解决
-
问题描述:
- A、B两人的代码一开始是同一版本 ,A先修改好代码,然后push到GitHub中,B后修改好代码,当B再推送自己的代码到GitHub中,此时由于自己的代码版本比A上传到GitHub中的最新代码旧,版本冲突。
- 解决办法:
- 一旦提示更新失败,就说明自己需要从远程拉取 pull 最新代码,本地的代码文件就会在冲突的文件中将冲突的部分罗列出来,手动修改代码
- 修改好之后,选中文件,鼠标右击:解决冲突
- 提交到远程库
9 搭建私有Git服务器
- Linux中搭建Git服务器,默认centos
- 1、安装git环境准备
yum -y install curl curl-devel zlib-devel openssl-devel perl cpio expat-devel gettext-devel gcc cc
- 2、下载git Linux安装包 tar
- 解压缩
- cd 解压文件夹
- 编译源代码:autoconf
- ./configure,执行结束之后就会生成一个make file
- make 编译
- make install
- 查看git版本:git --version
- 创建一个专门用来管理git的账户:adduser -r -c ‘git version control’ -d /home/git -m git
- passwd git
- 服务器中创建一个纯的git仓库指令:git init --bare
- 私有服务器的git地址:ssh://user_name@ip/home/git/仓库文件夹名
10 查看单个文件的修改记录
- 选中文件,鼠标右击:tortoisegit–>Show log,软件显示当前文件的修改情况
11 分支管理
-
11.1 创建分支
- 创建新的仓库就会生成master,master分支就是一条线,Git用master指向最新的提交,再用HEAD指向master,Head只想哪里,哪个就是当前分支,以及当前分支的提交点
- 使用TortoiseGit创建分支:
- 1、
使用TortoiseGit-->Switch/CheckOut创建并切换分支
- TortoiseGit–>Switch/CheckOut界面最上方:Branch,点击就能切换当前分支,如果点击Branch后面的…,就跳出另一个窗口,显示当前仓库的结构,默认打开的是heads内容,此时能查看head指针下有哪些branch,在没有创建新的分支时,只有master。
- 在TortoiseGit–>Switch/CheckOut界面,勾选CreateNewBranch,输入新的分支名称,确定,当前仓库就创建了新的branch并将head指针指向了当前的branch。
- 2、
使用TortoiseGit-->CreateBranch创建
- 但是不切换head指针,创建的时候直接输入branch名称,然后确定,不做其他修改。
说明:
:创建了两个分支,可以实现平行开发、隐藏文件功能
- 1、
-
11.2 合并分支
- 由于创建了很多的分支,合并之前,最终需要保留其中的一个分支,保留哪一个分支就先切换到哪个分支,常见的分支是master,所以先切换到master分支。
- 打开:Merge,窗口中Frame的Branch选择框中选择branch_1,意思是从branch_1中合并,直接点击确定,就能成功合并两个分支。
- 如果有冲突,就按照冲突处理方式,手动解决冲突。
-
11.3 删除分支
- TortoiseGit–>Switch/CheckOut–>…选中需要删除的branch_name–>鼠标右击:DeleteBranch,OK
12 pycharm+Git
-
21.1 通过文件名颜色识别文件状态
- 红色, 表示在工作区
- 绿色, 表示在暂存区
- 蓝色, 表示文件有修改,位于暂存区
- 文件名无颜色,表示位于本地仓库区或已经提交到远程仓库区
-
12.2 在Pycharm工具中配置集成Git
- 打开Pycharm, 点击File–>Settins–>Version Control–>Git 然后在 Path to Git executable中选择本地的git.exe路径
-
12.3 向Git仓库中添加文件
13 pycharm+Github
- 1、集成Github:
- 打开Pycharm, 点击File–>Settins–>Version Control–>GitHub然后输入正确的Github用户名和密码
- 2、推送项目到版本库
- VCS–>Import into Version Control–>Share Project on GitHub
- 3、从版本库克隆项目(失败率高)
- 把Git版本库中的项目代码克隆到当前Pycharm的工作路径中。
- 点击Pycharm导航栏中的VCS -> Get from Version Control -> Git
- 参考Git仓库