git使用说明

1.git clone  地址

2.有分支的话cd 进入项目目录,

然后git  branch -a(查看分支)

使用git checkout 分支名  切换进分支做修改操作

3.git add .  (.代表目录下所以文件的更改存入缓存区,也可换成路径文件)

4.git commit -m  描述

5.git push origin 分支名

6.Git中从远程的分支获取最新的版本到本地有这样2个命令:

6/1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge

git fetch origin master

git log -p master..origin/master

git merge origin/master

    以上命令的含义:

  首先从远程的origin的master主分支下载最新的版本到origin/master分支上

  然后比较本地的master分支和origin/master分支的差别

  最后进行合并

  上述过程其实可以用以下更清晰的方式来进行:

git fetch origin master:tmp

git diff tmp

git merge tmp

    从远程获取最新的版本到本地的test分支上

  之后再进行比较合并

6/2. git pull:相当于是从远程获取最新版本并merge到本地

git pull origin master

7.

图片发自简书App

8.git 撤销分支删除 操作

这个分两种情况

第一种你已经退出 terminal

git reflog 查看你上一次 commit SHA1值

git branch branchName

就可以根据 你的SHA1值,创建一个分支,这个commit 你可以选择删除分支操作的 commit SHA1

第二种情况 没有退出terminal

user@MY-PC/C/MyRepo(master)$ git branch -Dmaster2Deletedbranch master2 (was130d7ba).   

 <--Thisis theSHA1we need to restore it!

user@MY-PC/C/MyRepo(master)$ git branch master2130d7ba

你删除 分支的时候 git branch -D 后面会有 SHA1值,利用这个SHA1值 就可以恢复你的 分支。

这个时候 输入

git branch 你的分支名  SHA1值

然后根据你的SHA1 就可以恢复分支, 这个分支的名称就是 “你的分支名”

9.git 分支操作

创建分支

git branch

  没有参数,显示本地版本库中所有的本地分支名称。

  当前检出分支的前面会有星号。

git branch newname

  在当前检出分支上新建分支,名叫newname。

git checkout newname

  检出分支,即切换到名叫newname的分支。

git checkout –b newname master

  这个命令将上面两个命令合并:在master分支上创建分支newname分支并检出到该分支

合并分支间的修改 Merge

  合并操作将两条或多条分支合并到一起,实际上有好几种分支合并方法,下面介绍主要的三种:

1.直接合并(straight merge)

  把两条分支上的历史轨迹合并,交汇到一起。

  比如要把dev分支上的所有东东合并到master分支:

首先先到master分支:git checkout master

然后把dev给合并过来:git merge dev

注意没参数的情况下merge是fast-forward的,即Git将master分支的指针直接移到dev的最前方。

换句话说,如果顺着一个分支走下去可以到达另一个分支的话,那么Git在合并两者时,只会简单移动指针,所以这种合并成为快进式(Fast-forward)


2.压合合并(squashed commits):

  将一条分支上的若干个提交条目压合成一个提交条目,提交到另一条分支的末梢。

  把dev分支上的所有提交压合成主分支上的一个提交,即压合提交:

git checkout master

git merge --squash dev

  此时,dev上的所有提交已经合并到当前工作区并暂存,但还没有作为一个提交,可以像其他提交一样,把这个改动提交到版本库中:

git commit –m “something from dev”

3.拣选合并(cherry-picking):

  拣选另一条分支上的某个提交条目的改动带到当前分支上。

  每一次提交都会产生一个全局唯一的提交名称,利用这个名称就可以进行拣选提交。

  比如在dev上的某个提交叫:321d76f

  把它合并到master中:

git checkout master

git cherry-pick 321d76f

  要拣选多个提交,可以给git cherry-pick命令传递-n选项,比如:

git cherry-pick –n 321d76f

  这样在拣选了这个改动之后,进行暂存而不立即提交,接着可以进行下一个拣选操作,一旦拣选完需要的各个提交,就可以一并提交。


冲突处理

  当两条分支对同一个文件的同一个文本块进行了不同的修改,并试图合并时,Git不能自动合并的,称之为冲突(conflict)。解决冲突需要人工处理。

  比如当前在master分支,想把dev分支merge过来,结果产生了一个冲突,打开文件内容可以看到这么一个冲突:

<<<<<<< HEAD

test in master

=======

test in dev

>>>>>>> dev

<<<<<<<标记冲突开始,后面跟的是当前分支中的内容。

HEAD指向当前分支末梢的提交。

=======之后,>>>>>>>之前是要merge过来的另一条分支上的代码。

>>>>>>>之后的dev是该分支的名字。

对于简单的合并,手工编辑,然后去掉这些标记,最后像往常的提交一样先add再commit即可。

删除分支

  有些分支没有必要长期保存,比如分支中的代码已经打了标签并已发布,或者实验分支已经成功完成工作或中途废弃等等。 

注意:打了标签的分支,Git在删除该分支时,从版本树起始到此标签间的全部历史轨迹均会保留,此时删除分支操作只是删除分支本身的名称,因此可以说该分支没有必要长期保存。

  而在其他版本控制工具中,删除分支通常意味着删除分支上的所有历史轨迹,所以不能因为打了标签就认为其没有必要保存。


  删除一个分支dev2:

git branch –d dev2

  注意不能删除当前所在分支,需要转到别的分支上。

  如果要删除的分支已经成功合并到当前分支,删除分支的操作会直接成功。

  如果要删除的分支没有合并到当前所在分支,则会出现提示,如果确定无须合并而要直接删除,则执行命令:

git branch –D dev2

  进行强删。


分支重命名

  重命名分支:

git branch –m oldname newname

-m不会覆盖已有分支名称,即如果名为newname的分支已经存在,则会提示已经存在了。

如果改成-M就可以覆盖已有分支名称了,即会强制覆盖名为newname的分支,这种操作要谨慎。

gitLab部署指令

参考资料

  《版本控制之道——使用Git》(Pragmatic Version Control Using Git)

Git分支管理策略:http://www.ruanyifeng.com/blog/2012/07/git.html

Git Reference: http://gitref.org/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容

  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,643评论 4 54
  • 第一次知道V先生,是在简书。 后来诺爷说她在上海跟V先生面基了,然后关注了V先生的公众号。他策划了一次点赞加入私密...
    海升125阅读 235评论 6 3
  • 我们生活在新“奴隶”的时代,作为一名从农村走出来的80后,我是妥妥的房奴,还是一名娃奴。 记得孩子出生以后,我经常...
    晓菲心天地阅读 765评论 1 4
  • 7月18日咖啡冥想 1、下午一个人在家,整理上周末工作坊学习笔记,一边整理现场感一边显现出来,感觉有些东西是慢慢进...
  • 夏日晚风 冬日初阳 雕花窗飘来案上咖啡香 有书在手上 你在我身旁细语轻轻谈 春日清溪 秋日红叶满山 鸟儿收起翅膀落...
    剪窗阅读 335评论 1 3