Git使用教程

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 初始化本地仓库

    • 创建文件夹,例如:./repositorys/repository_1,进入repository_1文件夹中
      • 1、鼠标右击,使用Git GUI,点击创建新仓库,repository_1文件夹下就生成一个.git的隐藏文件夹
      • 2、使用Git Bash,进入对应文件夹,输入:
        	git init
        
      • 使用 TortoiseGit创建:
        • 鼠标右击:Git Create repository here …
        • 进入之后不要勾选:Make it Bare(No working directories),这是创建空白的新文件,自己已有项目就不勾选
  • 3.2 将文本文件暂存到暂存区

    • 注意:.git就是本地版本库,包含.git的文件夹就是当前的工作目录,如果想在本地仓库中添加文件,这个工作文件必须在工作目录下,也就是.git管理当前文件夹下的所有文件,将这文件夹下的文件管理进本地仓库
    • 步骤:
      • 1、在.git文件夹下创建新文件;
      • 2、创建好之后,选中文件,鼠标右击;
      • 3、使用Tortoise Git将创建的文件Add到本地仓库中,点击OK;
      • 4、在当前文件夹的空白处右击鼠标:Git commit master;
      • 5、在massage中填写当前提交的日志信息,必填项
    • 名词解释:
      • 工作目录:电脑里能看到的目录,比如 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、登录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,粘贴公钥
          • 接下来可以使用命令行和仓库进行连接
        • 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查看时候推送成功
    • 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名称,然后确定,不做其他修改。
      • 说明::创建了两个分支,可以实现平行开发、隐藏文件功能
  • 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仓库中添加文件

    • 在pycharm中任意新建一个文件。默认是红色,但是会弹出一个对话框(你想要将以下文件添加到Git吗?),点击Add按钮后,文件颜色变绿色,表示已经进入暂存区。如下图。
      • 在这里插入图片描述
    • 点击右上角的√提交到版本库
      • 在这里插入图片描述
    • 提交到本地Git版本库
      • 在这里插入图片描述
    • 12.4 从版本库克隆项目

      • 把Git版本库中的项目代码克隆到当前Pycharm的工作路径中。
      • 点击Pycharm导航栏中的VCS -> Get from Version Control -> 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仓库
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值