关于git

一、理解概念

    1、git与github的区别: 两者并非同一个概念,简单而言, git是一种实现分布式版本控制的工具,可以看做是一种管理代码的工具; github 则是一个远程的代码仓库,是世界上最大的软件远程仓库,是一个面向开源和私有软件项目的托管平台, 全世界的程序员都会将代码上传到该平台,与大家做分享和开源;

    2、 git与github的关系: 当你要开发一个自己的项目时, 需要创建自己的项目仓库, 这个仓库,可以创建在本地,也可以创建在github这样的开源管理平台; 而对github的所有操作,均是通过git指令实现的;  所以,简单理解一下两个的关系,更多是一种『平台化和操作平台工具』的关系;

二、git的工作原理

    1、从远端仓库克隆git资源到本地目录,该本地目录为『工作区』;一般是『git clone』的结果

    2、在工作区,可以进行代码的修改、新增代码、删除代码等操作;

    3、如果有其他人更新了代码,并合入了远端仓库, 你可以直接更新本地目录,实现同步更新;  同样,你也可以是那个更新远端仓库的人;

     4、提交修改到暂存区,英文名为stage或者index,一般放在『.git』目录下的index目录下;【不过这些不重要,重要的是后面这句话】, 当执行『git  add   被修改的文件』指令后,对工作区的修改,被存储到『暂存区』;

     5、提交修改到本地仓库,该操作是执行『git commit 』的结果;

     【对于其原理,还不明白,可以参考:https://www.runoob.com/git/git-workflow.html

三、基本操作汇总

      1、单纯的创建本地git仓库:  git init   

           该指令会在当前目录下创建.git目录,并初始化git配置文件,从而实现初始化一个本地仓库;  

          当然,你可以执行『git  update-server-info』指令,来跟远程用户共享你得仓库;

     2、可以远端仓库(如github)的代码到本地:

          提供两种方法: http和ssh

           git  clone  https://github.com/PaddlePaddle/models.git

           git  clone   git@github.com:PaddlePaddle/models.git

      3、使用git 新增与提交变更

           通过git这种分布式版本控制系统, 你可以在仓库的本地副本上完成大部分工作,包括添加新的代码、修改代码、测试等; 最后将完整无误的代码提交就可以了;

           1)git add :  上面降到该指令实现,将工作区的代码变更添加到暂存区; 该命令,并不会改变仓库的内容,只是标记了此次变更;  【通常的做法是, 每次修改之后,都使用git add 指令小型提交一下,防止遗漏,到最后全部完成之后,再执行一次大的提交】

       # git add   文件名/文件夹/ *.c (多个文件同时git)  

           2) git commit: 该指令,会打开shell环境变量EDITOR中定义好的编辑器,这样的操作之后,你得代码就被保存到仓库的本地副本中了; 但是,这样的操作,并不会影响到远端仓库(github);

       #  git  commit  

       #  git  commit   -m  "modify  some  file"

       #  git  commit -am   "Add and commit  all modify files"    【git  commit  -a  操作,相当于执行了 git add 操作】

    4、关于分支的管理与操作

        1) git branch :  查看,当前所在的分支;   【git branch  -a  指令可以查看对应代码库下的所有分支】,如下:

             

         2)git checkout  bdg   : 实现切换到bdg分支,

               git  checkout 子命令会检查系统中的.git目录, 然后恢复  与指定分支相关联的快照,从而实现切换分支;

               git  checkout  -b  MyBranchName  命令实现创建一个新的分支,并切换到该分支;

         3)合并分支

             # git  checkout   originalBranch :   切换到指定的分支;

             # git  checkout   -b  modsToOriginalBranch :  创建新的分支modsToOriginalBranch,该分支指针指向   originalBranch分支;

             # 编辑代码,测试编辑后的代码;

             # git   commit   -a  -m  "Comment on  modsToOriginalBranch  to originalBranch" :   【git  add   修改部分;   git commit  修改部分】

             # git  checkout   originalBranch :    切回到最初的分支,也就是将代码恢复到编辑和提交之前的最初状态;

             #  git  merge      modsToOriginalBranch :  merge指令将起始分支的快照指针移动到正在合并的分支快照  【也就是将修改的部分,与原始分支代码合并,将合并后的代码做为下一次修改的原始代码】

          4) 删除分支:   git   branch  -d   myBranch

          5) 查看日志:  git  log  :  该命令可以生成一份报告,该报告中记录了每一项提交记录;

   5、分支推送

          通过git  commit 指令,将修改内容更新到本地仓库后, 接下来就是将本地仓库的分支推送到远端分支上:

           git   push   『远端主机名』   『本地分支名』  『远端分支名』

           #  git push   origin  master:   refs/for/master

          1)  origin 远端主机名;    master  本地分支名;     第二个master  为远端分支名;   

             refs/for 表示提交代码到服务器之后,需要经过codereview 才能合入;   对应的 refs/heads 则不需要;

         2)各种变形指令:   

             #  git  push  origin  master:   省略远端分支,表示将本地分支内容推送到 与之存在追溯关系的远端仓库的同名分支;  如果远端仓库不存在该分支,则会新建;

            #  git push origin :refs/for/master :  省略本地分支名,  表示推送一个空的分支到远端仓库,等同于删除远端仓库的同名分支;

           #  git push origin   : 省略本地分支,同时省略远端分支, 表示将当前分支,推送到远端仓库的同名分支中;

           #  git  push :  如果当前分支对应的远端仓库中,也只有一个分支,那么origin也可以省略;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值