在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

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

Git管理的更多相关文章

  1. git 管理

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "Helvetica Neue"; color: #3e3e3e; bac ...

  2. 用git管理源代码

    自从做iOS开发的一年多以来,之前一直都是用svn进行代码管理.因为工作需要,我也开始用git管理源代码.关于git的基本使用,在此做一个详细的介绍,希望能对初次接触git的人有所帮助! 本篇博客针对 ...

  3. Linux下,使用Git管理 dotfiles(配置文件)

    1.管理你的 dotfiles 作为一个计算机深度使用者,并且长期使用 Linux 作为主要操作系统,折腾各种功能强大的软件是常有的事儿.这些软件有它们各自的配置文件,通常以 . 开头,因此有人管它们 ...

  4. 使用 Git 管理源代码

    在现代软件开发项目中,要成为一个有效的软件开发人员,我们必须能够与其他项目贡献者并行进行开发.源代码管理(SCM)系统不是什么新思想.为了编写一些能够更快速.简单地开发以后软件项目的软件,已经进行了很 ...

  5. App开发流程之源代码Git管理

    base项目已经可以编译运行了,只不过没有实际功能而已.继续完善base项目前,我们需要考虑一下代码管理的事情了. 不管是一个人开发还是一个团队开发,对源代码进行版本管理是必须的,任何人对代码的的任何 ...

  6. git管理工具的使用教程

    Git入门教程 1.   概述     对于软件版本管理工具,为什么要选择Git?      你真正学会使用Git时, 你就会觉得这个问题的回答是非常自然的.然而当真正需要用文字来回答时,却觉得文字好 ...

  7. git管理和自动部署项目

    当一个项目需要纳入到版本控制的时候,选择的工具还是比较多的,最常见的就是工具有CVS,SVN,GIT等.在平时的开发中视情况而定,从来就没有最好的版本控制工具,只有最适合的工具.在这里我习惯用git来 ...

  8. git管理修改

    为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件. 新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改 ...

  9. Git管理工具对照(GitBash、EGit、SourceTree)

    Git管理工具对照(GitBash.EGit.SourceTree) GitBash是採用命令行的方式对版本号进行管理,功能最为灵活强大,可是由于须要手动输入希望改动的文件名称,所以相对繁琐. EGi ...

  10. 怎么样eclipse发达国家多重聚合关系maven项目和使用git管理

    最近使用的项目的开发maven,多于maven有项目之间有一定的联系,因此,创建一个单独的,然后,maven聚合管理. 项目采用git要管理代码.由于上传的代码集时,.gitignore不要上传文件. ...

随机推荐

  1. Keil for ARM与C++

    1. 如果你的程序中使用了C++全局变量,那么*不要*使用MicroLIB,否则Keil会说某某Symbol找不到 2. 不使用MicroLIB带来的一个问题是KEIL会使用semihosting S ...

  2. (转)Flex开发工具Flex Builder 3 下载及注册码

    本文转载自:http://blog.csdn.net/wlxtaking/article/details/5779762 Flex是通过java或者.net等非Flash途径,解释.mxml文件组织c ...

  3. [转][C#]压缩解压缩类 GZipStream

    本文来自:https://msdn.microsoft.com/zh-cn/library/system.io.compression.gzipstream(v=vs.100).aspx using ...

  4. Spring主从数据源动态切换

    参考文档: http://uule.iteye.com/blog/2126533 http://lanjingling.github.io/2016/02/15/spring-aop-dynamicd ...

  5. 第7课 Qt中的坐标系统

    1. 坐标系统 (1)GUI操作系统都有特定的坐标系统 (2)图形界面程序在坐标系统中进行窗口和部件的定位 (3)定位类型 ①顶级窗口部件的定位 ②窗口内部件的定位 ③窗口部件的大小设置 (4)QWi ...

  6. python twilio 短信群发 知识留存

    1. win7 32位系统,傻瓜安装Anaconda2(python 2.7) 2. 打开cmd, 输入命令pip install twilio,在线安装twilio 3. 打开Anaconda2的S ...

  7. leetcode738

    public class Solution { public int MonotoneIncreasingDigits(int N) { var num = N.ToString(); var len ...

  8. Python新利器之pipenv(转)

    pipenv 都包含什么? pipenv 是 Pipfile 主要倡导者.requests 作者 Kenneth Reitz 写的一个命令行工具,主要包含了Pipfile.pip.click.requ ...

  9. 两种定时器 setInterval(一直执行) setTimeout(只执行一次)

    //第一种 var obj = setInterval(function () { console.log(123); clearInterval(obj) }, 1000); //第二种 var t ...

  10. Eclipse去掉对jQuery的错误提示

    1.I have found that I can leave the JavaScript Validator enable and ignore specific files by adding ...