• 关于git,你需要知道一点命令


    最近有朋友经常问git的一些操作,写在这里与大家分享,以后也不用一一解释了。惯例,这是基础分享,从安装开始说起:

    安装:

    1. 去这里 https://git-scm.com/ 找到你所需要的版本,下载并安装。
    2. 找到安装好的文件,并打开Git Bash。

          如果搞定,那么恭喜,否则请继续重复。

    • git config --global user.name 你的名字
    • git config --global user.email 你的邮箱

          因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。

          注意:git config  –global 参数,表示你这台机器上所有的仓库都会使用这个配置,当然也可以对某个仓库指定的不同的uname和email。

     

    创建版本库

          以e盘下www为例

             $ cd e:             进入 e盘     、

             $ cd www         进www 

             $ pwd              /e/www    回车看你的目录是否正确打印 

             $ mkdir test     创建版本库 (新建名为test的文件夹)

             $ cd test     

             $ git init          这样test目录下就多了一个.git 文件   不要动他!!!   用来控制版本等一些操作的

          没问题的话,咱们继续走着~

    添加文件到版本库

          如果你觉得内容太多,可以清理一下,

          $ clear                    清理当前命令台

          现在,我们在版本库test目录下,新建个文件 README.md 并在在里面写点内容 # 要饭的好帅  (当然你也可以创建其他类型的文件写你想写的内容,比如,新建一个txt文件,写上楼主好帅)

          回来继续~

         $ git add README.md             把刚才新建的README.md文件添加到暂存区里面

         $ git commit -m"第一次提交"     把文件提交到仓库   -m"用来备注的"

         注意:add是入暂存    commit才是入库

         $ rm README.md                    试一下。。。。。卧槽,原来这是删除文件,肿么破

         $ git checkout --README.md       没关系,又回来了,仔细看一眼,还是不是当年的夏雨荷嘛。

         注意:命令git checkout --readme.txt 中的 -- 很重要,如果没有的话,那么命令变成创建分支了。

         我想彻底干掉他肿么办?rm后,再commit提交,这不是我告诉你的,误删不是俺的过错 0.0

       

         说说目录中那个隐藏目录.git,这是版本库。其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。

         咱们刚才不是提交需要add  与 commit么

    •      add,其实就是把文件添加到暂存区。
    •      commit,就是把暂存区的所有内容提交到当前分支上。

     log

      改一下文件的内容,

      $ git add README.md       

      $ git commit -m"第二次修改"

          $ cat README.md                  显示当前版本的文本内容

          在改一次(最好内容有所区别),在 add  commit

          好,别玩了....

          $ git log                                看看你的捣蛋了么,证据确凿。铁证如山。

          $ git log --pretty=oneline        单行显示。觉得log日志太乱的话,可以用,如果信息太多,可能会显示END  无视它,按q键退出来就好

          $ git reset --hard HEAD^        回到你上次的版本

          $ git reset --hard HEAD^^     上上次    修改那么多次,要^^^^^^^^^^,卧槽。。。别着急,先

          $ git reflog                           看到前面是什么,我才应该是版本号,最后一行显示的是第一次提交的版本,看到了版本号,我觉得你应该想到了什么,没错,我们根据版本号回到之前的版本,版本号就写前面几位就可以,别那么实在,把一大串都写上去

          $ git reset --hard 6459c17     回去看看,你的文件内容发生了什么变化

          多玩几次,试试看。。。

         累了么? 在休息之前先mark,帅气的要饭的继续接着聊远程仓库,回来的时候记得带着你的github账号

    远程仓库

     

         到这里,我假设你已经有了github账号,如果没有,快去注册。

         

         由于你的本地仓库和线上仓库之间的传输是通过加密的,所以需要你设置:

    •      创建SSH Key

                      ssh-keygen  -t rsa –C “你的邮箱”       在刚才test目录下,是不是已经多了两个文件 xxx 与 xxx.pub

    •      登录github

                     打开” settings”(右上角头像右侧的向下小三角)中的SSH Keys左侧列表)页面,然后点击“New SSH Key”,

                     在title里,你可以写一个有意义的titie(比如:这是一个有意义的titie),在Key文本框里粘贴xxxx.pub文件的内容。 然后Add SSH key

         是的,没错,你现在已经看到你的key了

         

         接下来你又该想了,我本地有个仓库,还想在线上创建个仓库,并且希望两个仓库同步,这样线上既可以备份,别人也可以通过该仓库来做一些事情,要怎么做?

         那么咱们登录github,然后在右上角找到“new repository”(在头像左侧 +下三角)创建一个新的仓库。然后写上你的项目名字test,点击创建

         这个仓库克隆新仓库,也可以把本地仓库与之关联,然后,把本地仓库的内容推送到线上仓库。

         现在有空仓了,然后呢?    

         回到命令台,继续...

       

        $ git remote add origin https://github.com/xxx/TEST.git

        $ git push -u origin master                                     把当前分支master推送到远程

        由于远程库是空的,第一次推送master分支时,加 –u参数,Git会把本地的master分支内容推送的远程新的master分支,还会把他们关联起来,

        这样以后的推送或者拉取时就可以简化命令。推送成功后,可以立刻在github页面中看到远程库的内容已经和本地一模一样了。

       注意:这里需要输入你的github账号密码

       提交一下试试看?

      $ git push origin master           现在你就有了真正的分布式版本库咯。

    克隆仓库

      现在,如果远程库有新的内容了,咱们搞到本地来?这部简单么,下载嘛。。。好吧,您赢了。

          我们需要克隆,那么如何克隆呢?

          登录github,咱们创建一个新的仓库,名字叫test2

          $ git clone https://github.com/xxx/text2.git         克隆
          Cloning into 'text2'...

          $ ls                                                                   查看仓库目录
          ds.txt luqin luqin.pub README.md text2/

    创建与合并分支

      咱们刚才提到,版本回退时候,每次提交,git都会把它们根据时间串成大串儿,这就是一个分支。现在只有一串儿(只有一条事件线),我们把这个分支称之为主分支。

      就是master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。

      $ git checkout -b dev
        Switched to a new branch 'dev'      git checkout 命令加上 –b参数表示创建并切换,相当于如下2条命令

      $ git branch dev

      $ git checkout dev

     

          $ git branch         查看分支,会列出所有的分支,当前分支前面会添加一个星号。
        * dev
        master

      然后我们在dev分支上继续,还记得咱们之前的那个文本文件么。在加点内容:

      $ cat README.md           查看文件

          是不是发现了什么

      

      继续查看README.md内容如下:

      $ git checkout master       咱们切换到主分支master上
        M README.md
        Switched to branch 'master'
        Your branch is up-to-date with 'origin/master'.

      $ git merge dev               把dev分支上的内容合并到当前分支(master)
        Already up-to-date.     

          在看一眼,发生了什么。。  是不是在此分支看到刚才增加的东东。

          git merge是合并指定分支到当前分支上,合并后,再查看README.md内容,这时候我们可以看到,和dev分支最新提交的是完全一样的。


      $ git branch -d dev     在试试 删除分支
      $ git branch               查看分支,会列出所有的分支,当前分支前面会添加一个星号

      注意:假如两个分支都有修改,合并会有冲突。

     有点乱么,总结一下:

    • git checkout master       切换回主分支
    • git checkout -b dev         创建并切换,相当于以下两条命令

              $ git branch dev

         $ git checkout dev        切换到dev

    • $ git branch              查看所有分支 *表示在当前分支下
    • 修改完成文件后在 dev分支下提交

        $ git add README.md

        $ git commit -m"备注"

    • $ git branch -d dev           删除dev分支
    • $ git merge dev            把dev分支合并到当前分支,dev分支还存在

    因为时间关系,后面,还会继续与大家分享分支管理,多人协作,整理常用的一些命令。

    
    
  • 相关阅读:
    tensflow安装
    Dubbo的服务注册--Zookeeper
    Dubbo源码分析之Exporter---服务暴露(本地和远程)
    Dubbo源码分析之XML的Bean解析
    Dubbo的SPI可扩展机制的源码分析
    Dubbo源码分析(三)-----消费者引用服务启动时序
    导出mysql的表结构的字段为excel
    Dubbo源码分析(二)-----提供者启动过程分析
    dubbo的api的配置(基于注解的配置)
    Dubbo源码分析(一)-----包结构的分析
  • 原文地址:https://www.cnblogs.com/luqin/p/5258815.html
Copyright © 2020-2023  润新知