• Git管理


    在bitbucket用git用法

    核心流程:从远端中心repo那里git clone到本地,再在本地开发(add,commit),通常会利用branch管理,如果觉得code没问题了,就push到远端中心repo上,这里中心的repo就是bitbucket上的repo。显然,可以看到从commit à push中 有一个review的过程。这一步也是很重要的。

    1. git clone http的path     把repo下载到本地
    2. git status           查看哪些文件修改了
    3. git commit
    1. git branch分支管理 (重点!)

    在git版本库中创建分支的成本几乎为0,所以,不必吝啬多创建几个分支。当第一次执行git init时,系统就会创建一个名为“master”的分支。在bitbucket中已经创建了master分支,我们只需要clone 下来即可。而其他分支则通过手工创建。下面举例列举一些常见的分支策略,这些策略相信会对你的日常开发带来很多便利。

    1.创建一个属于自己的个人工作分支,以避免对主分支master造成太多的干扰,也方便余他人交流协作。

    2.当进行高风险的工作时,创建一个试验性的分支,扔掉一个烂摊子总比收拾一个烂摊子好得多

    3.合并别人的工作的时候,最好是创建一个临时的分支来合并,合并完成后再“fatch”到自己的分支。

    查看分支---  git branch

    调用git branch可以查看程序中已经存在的分支和当前分支

    创建分支--- git branch 分支名

    要创建一个分支,可以使用如下方法:

    1. git branch 分支名称
    2. git checkout -b 分支名

    说明:使用第一种方法,虽然创建了分支,但是不会将当前工作分支切换到新创建的分支,因此,还需要命令 git checkout 分支名 来切换,二第二种方法不但创建了分支,还将当前工作分支切换到了该分支上。

    另外,需要注意,分支名称由可能出现重名的情况的,比如说,我在master分支下创建了a和b两个分支,然后切换到b分支,在b分支下又创建了a和c分支。这种操作是可以进行的。此时的a分支和master下的a分支实际上是两个不同的分支。因此,在实际使用时,不建议这样操作。

    删除分支   -- git branch -d/-D 分支名

    -d 是删除  -D是强制删除,但是需要小心,删除后,发生在该分支的所有变化都无法恢复。

    切换分支   --- git checkout 分支名

    如果分子已经存在,可以通过 git checkout 分支名 来切换工作分支到该分支名

    合并分支  --- git merge

     Git merge 的用法为: git -merge “some demo ”合并的目标分支  合并的来源分支。 如:

    分支的管理:

    到目前为止,你已经学会了如何创建,合并和删除分支。除此之外,我们还需要学习如何管理分支,在日后的常规工作中会经常用到下面介绍的管理命令。

    git branch 命令不仅仅能创建和删除分支,如果不加任何参数,它会给出当前所有分支的清单:

    $ git branch

      iss53

    * master

      Testing

    注意看master分支前面的 *字符:它表示当前所在的分支。也就是说,master分支将随着开发进度前移,若要查看各个分支最后一个提交对象的信息,运行 git branch -v

    $ git branch -v

      iss53   93b412c fix javascript issue

    * master  7a98805 Merge branch 'iss53'

      testing 782fd34 add scott to the author list in the readmes

    要从该清单中筛选出你已经(或尚未)与当前分支合并的分支,可以用 –merged和 –no-merged选项。比如用 git bran –mergrd 查看哪些分支已被并入当前分支

    与远程server操作!!! Clone pull push

    2.7   远程获取一个git库 git-clone

    如果你不是一个代码模块的发起者,也不会使用到git-init命名,而是更多的是使用git -clone。通过这个命令,你可以从远端完整地获取一个git库,并可以通过一些命令和远端的git交互。

    基于git的代码管理的组织结构,往往形成一个树状结构,开发者一般从某个代码模块的管理者的git库通过git-clone取得开发环境,在本地迭代开发后,再提交给该模块的管理者,该模块的管理者检查这些提交并将代码合并到自己的库中,并向更高一级的代码管理者提交自己的模块代码。

    2.8 从远程获取一个git分支 – git-pull

    与git-clone不同, git-pull可以从任意一个git库获取某个分支的内容。用法如下:

    git-pull username@ipaddr: 远端repository名 远端分支名:本地分支名。这条命令将从远端git库的远端分支名获取到本地git库的一个本地分支中。其中,如果不写本地分支名,则默认pull到本地当前分支。

    需要注意的是,git-pull也可以用来合并分支。 和git-merge的作用相同。 因此,如果你的本地分支已经有内容,则git-pull会合并这些文件,如果有冲突会报警。

    2.9 将本地分支内容提交到远端分支 – git-push

    git-push和git-pull正好想反,是将本地某个分支的内容提交到远端某个分支上。用法:

    git-push username@ipaddr: 远端repository名 本地分支名:远端分支名。这条命令将本地git库的一个本地分支push到远端git库的远端分支名中。

    需要格外注意的是,git-push好像不会自动合并文件。这点我的试验表明是这样,但我不能确认是否是我用错了。因此,如果git-push时,发生了冲突,就会被后push的文件内容强行覆盖,而且没有什么提示。 这在合作开发时是很危险的事情。

    2.10 库的逆转与恢复 – git-reset

    库的逆转与恢复除了用来进行一些废弃的研发代码的重置外,还有一个重要的作用。比如我们从远程clone了一个代码库,在本地开发后,准备提交回远程。但是本地代码库在开发时,有功能性的commit,也有出于备份目的的commit等等。总之,commit的日志中有大量无用log,我们并不想把这些 log在提交回远程时也提交到库中。 因此,就要用到git-reset。

    Git-reset的概念比较复杂。它的命令形式:git-reset [--mixed | --soft | --hard] [<commit-ish>]

    命令的选项:

    --mixed

    这个是默认的选项。 如git-reset [--mixed] dev1^(dev1^的定义可以参见2.6.5)。它的作用仅是重置分支状态到dev1^, 但是却不改变任何工作文件的内容。即,从dev1^到dev1的所有文件变化都保留了,但是dev1^到dev1之间的所有commit日志都被清除了,而且,发生变化的文件内容也没有通过git-add标识,如果您要重新commit,还需要对变化的文件做一次git-add。这样,commit后,就得到了一份非常干净的提交记录。

    --soft

    相当于做了git-reset –mixed,后,又对变化的文件做了git-add。如果用了该选项, 就可以直接commit了。

    --hard

    这个命令就会导致所有信息的回退, 包括文件内容。 一般只有在重置废弃代码时,才用它。 执行后,文件内容也无法恢复回来了。

  • 相关阅读:
    zbb20170604 在linux (64bit)下安装rar for linux
    zbb20170601 oracle 存储过程 函数 包
    zbb20170601 oracle PL/SQL 语句块 游标 自定义游标 异常处理EXCEPTION
    5、Spring+Struts2+MyBatis+分页(mybatis无代理)增删改查
    2、枚举
    3、时间和随机数
    4、Spring+MyBatis增删改查
    3、Spring的AOP详解和案例
    2、Spring的 IoC详解(第一个Spring程序)
    1、Spring概述
  • 原文地址:https://www.cnblogs.com/CugYzc/p/9451549.html
Copyright © 2020-2023  润新知