Git学习笔记

Git学习笔记

Git历史

  • git的作者也是Linux系统的作者
  • 当时git的作者用的Bitkeeper来管理和维护代码,结果当时Linux开源社区的人偷偷搞破解被BitKeeper公司发现了,于是收回了免费使用权
  • 然后这个大神就自己开发了一个,不能没得用嘛。结果越来越火了。

Git和svn的对比

  • svn是集中式管理方式,会把代码提交到服务器,集中式开发很方便,缺点是服务器挂了就只能等。
  • git是分布式版本控制系统,是不连接服务器的。git是有一个本地仓库的,不一定要链接服务器。

Git的工作流程

  1. 本地仓库闭环
    1. 先把本地仓库的代码和工作区代码进行校验
    2. 将工作区代码加入进暂存区
    3. 最后将代买提交到本地仓库形成闭环
  2. 远程仓库交换代码
    1. 将本地仓库push到远程仓库
    2. 有人要提取就将远程仓库代码复制到本地仓库
    3. 或者直接拉到工作区
    4. 然后再实现本地闭环

Git的安装

  • 传送门
  • 下载好之后一路点确认即可
  • 装海龟
  • 装语言包

怎么创建一个版本库

  • 创建自己放版本库的文件夹
  • 在文件夹页面右键选择创建版本库(直接鼠标右键即可),并直接确定,就能在这个位置创建一个.git 的版本库
    • 这是一个隐藏文件夹,记得打开隐藏选项,不然会看不到

提交文件到工作区和暂存区

  • 右键一个文件,移动到TortoiseGit选项中选中添加,其实是将文件添加到工作区,点击提交才能加进本地仓库
  • 再次右键,选择提交到master,就能打开提交页面
  • git需要写日志才能提交,最好写上自己改了什么,再提交

修改文件内容并提交

  • 右键,选择tortoisegit选项,选择版本库浏览器,就能看到本地库里已提交的有什么文件
  • 可以对文件进行修改操作
    1. 直接打开文件,开始操作,开始各种写。
    2. 修改保存后,右键修改的文件,点击git->提交master,然后跟上面提交文件一样,先写日志,再将文件提交到版本库
  • 可以查看进行了那些修改
    1. 右键,选择tortoisegit,选择显示日志,就能查看每次提交的日志
    2. 选中其中两个版本,然后右键选择比较两个版本的差异,就可以看到两个版本之间内容之间的差异在哪里,修改部分会高亮

删除文件

  • 删除的两种操作
    1. 可以直接选中文件,然后delete掉。
    2. 右键要删除的文件,选中tortoisegit选项,里面有个删除选项,点击删除。
    3. 注意,这样删除没有真正删除,他还是可以复原的

然后讲讲复原操作

  • 复原操作

    1. 复原的前提是没有提交到版本库

    2. 直接右键选择tortoisegit选项,里面就有一个复原选项

    3. 点击复原,选择自己想要复原的文件

有时我的确想直接删掉不能复原,这样的话:

  • 从版本库中删除,不能复原
    1. 执行一下删除操作
    2. 右键,选择git->提交master,然后和上面的提交操作一样,做完就能真正提交了。

而又有的时候我只是想删版本仓库里的文件,并不想删工作区的文件,这样的话:

  • 删除工作副本
    1. 右键,选择tortoisegit选项,选择删除本地副本
    2. 这时候还没提交,是还没彻底删除的,于是我们就重复上面无法复原的删除操作就行

将一个工程加入本地版本库,并且忽略希望忽略的的文件

  • 添加工程

    • 选中文件夹后,按照添加文件那样添加就可以了。
  • 忽略部分文件

    1. 选中想要忽略的文件夹或者文件,右键选择tortoisegit,找到添加到忽略列表选项,点击进入到界面

    2. 忽略类型

      • 递归忽略:会把文件夹里的所有文件都忽略
      • 只忽略指定文件夹的文件或者文件夹

      建议选择递归忽略,全部忽略掉

    3. 选定.gitignore 的文件位置

      • 一般来说会有三个,放在版本库根目录,放在文件夹根目录,放在exclude文件夹
      • 建议选择放在文件家所在目录
    4. 点击确定之后会问你是否要删除本地文件,一般是不删除

  • 可以看到忽略完之后能看到一个.gitignore 文件,用txt打开,会看到一排文件名,是忽略的文件夹或者文件夹的名字

用Github创建一个远程仓库

  • 首先先登陆注册一个GitHub账户。

  • 建立一个仓库

    1. 在主页面上,找到创建新项目,点击,进入创建新项目

    2. 将仓库名字写上,描述写上

    3. 选择仓库类型

      • public:就是向公众公开,就是所谓的开源
      • private:不向公众公开,违反开源精神,要付一定的钱
  • 利用https或者ssh推送远程仓库

    1. ssh(使用私钥加密,公钥解密的方式,是暂时最安全的加密方式)

      • 点击自己刚建立的仓库,看到这一行下面

        Quick setup — if you’ve done this kind of thing before
        

        能看到一个https和ssh的按钮选项,点击能生成对应的链接

        这次我们点击ssh~

      • 往下看,看到这个下面

        …or push an existing repository from the command line
        git remote add origin git@github.com:xxxxxx/repo1.git
        git push -u origin master
        

        这个就是将本地仓库推送到远程仓库的命令

    2. 生成一个ssh

      • 右键,点击git bash here

      • 输入下面的命令

        ssh-keygen -t rsa
        

        回车,等待执行完毕

      • 执行完毕后,在

        C:\Users\admin\.ssh
        

        可以找到自己刚刚生成的ssh。admin根据你自己的用户名来定,不一定是admin。

      • 文件夹里有公钥和私钥

        id_rsa //私钥
        id_rsa.pub //公钥
        

        私钥不要乱给。但要把公钥告诉给服务器。

        以txt形式打开id_rsa.pub 将里面的东西全部复制下来

      • 回到GitHub,点击头像,找到setting,找到SSH and GPG key,点击

      • 然后自定义一个ssh的名字,将刚刚复制的东西全部粘贴,再确定添加

      • ssh添加完毕

    3. 将项目发送到GitHub

      • 这就很简单了朋友们,右键,点击git bash here

      • 输入下面的命令,就是GitHub提供的命令

        git remote add origin git@github.com:xxxxxx/xxxx.git//记得改掉xxx
        git push -u origin master
        
      • 然后回车+yes,一路点,就发送过去了

      • 回到GitHub刷新看看~

    4. https

      • 用https就很方便了朋友们~

      • 点击自己刚建立的仓库,看到这一行下面

        Quick setup — if you’ve done this kind of thing before
        

        能看到一个https和ssh的按钮选项,点击能生成对应的链接

        这次我们点击https~,复制链接

      • 然后回到要同步的文件夹,右键,点击git同步

      • 点击管理

      • 编辑远端姓名,随便自己起

      • URL填自己刚刚复制的链接

      • 删光Putty密钥

      • 添加就可以,可能会弹出一个窗口,不理会确认就行

      • 回到那个界面,我们呢点推送

      • 会提示我们输入GitHub的账户名和密码,输入进行

      • 然后就是等待成功喔~

从远程仓库克隆到本地

  • 使用ssh克隆
    1. 登录GitHub,选择自己想要克隆的库点击点开
    2. 在页面中找到clone and download ,点击
    3. 这里选择ssh,会自动生成一个链接,复制一下
    4. 回到你想要复制的文件夹,右键点击 git bush here
    5. 输入命令行git clone + 你复制的ssh链接 ,回车,不出意外就在下载了
  • 使用https克隆
    1. 登录GitHub,选择自己想要克隆的库点击点开
    2. 在页面中找到clone and download ,点击
    3. 这里选择https,会自动生成一个链接,复制一下
    4. 回到你想要复制的文件夹,右键点击 Git 克隆
    5. 它会自动帮你填上你刚刚复制的链接,点击确定就能成功克隆

将本地版本库推送到远程服务器

  • 首先对自己的文件进行修改,提交到本地版本库
  • 右键,点击Git 同步
  • 选择好服务器端之后,点击推送就能发送到服务器。

推送时出现冲突

  • 推送的时候,如果别人先修改了服务器的版本库,而你没有在这个基础上修改,就会发生冲突,不会正常推送而是报错。

  • 这时候需要处理发生冲突的文件。

    1. 这个时候我们只能选择拉取,并且拉取一定会失败,且文件会显示冲突

    2. 打开冲突文件后,会看到这样的情况。中间内容就是冲突内容,更改的时候将两个头给删掉,自己把冲突部分合并了。

      <<<<<<< HEAD
      。。。
      >>>>>>> f704b43f53ce01496134a4c50d0f662de08c73b1
      
    3. 保存,右键选择tortoisegit选项,选择解决冲突

    4. 然后提交到远程服务器就可以了

分支

  • 怎么创建分支
    1. 右键选择tortoisegit选项,里面有两个选项可以创建分支
      • 切换/检出:创建分支后会直接选择新的分支作默认分支
      • 创建分支:创建分支后不会选择性的分支作默认分支
    2. 选择之后步骤就是按照界面的操作点,直接确定就行了
  • 分支的概念
    1. 它相当于一个指针,指向开发版本的的当前时间线上
    2. 用某个指针开发后,版本互不影响,各走各的路,会形成一个分叉
    3. 同时他也可以合并指针,将两个指针指向的版本合并,变成一个新的版本
posted @ 2020-03-17 16:03  Herman·H  阅读(152)  评论(0编辑  收藏  举报