Git 记录

参考:

  1. https://www.yiibai.com/git/git_basic_concepts.html

零零散散的一些记录,仅供参考

1.Git 常用操作命令

  1. 创建分支:
    git checkout -b dev // 创建并切换
  2. 切换分支
    git checkout master // 切换到主分支
  3. 查看当前分支
    git branch / git branch -r 查看远程分支
    你可以通过"git remote"命令自由定义额外的“远程名称”。但“git clone”命令默认使用的是“origin”这个名称(origin 表示主机,下面fork时会有介绍 )。
  4. 合并分支
    git merge dev // 命令用于合并指定分支到当前分支
  5. 删掉指定分支
    git branch -d dev
    git push origin :dev2 // 删除远程分支 《不要用》
    git push origin dev // 提交 : 注意冒号
  6. 查看分支合并情况
    git log --graph --pretty=oneline --abbrev-commit
  7. checkout远程的dev分支,在本地起名为dev分支,并切换到本地的dev分支
    git checkout -b dev origin/dev

2.小工程的Git 分支管理策略

首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
和小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

分支是如何存的

  • .git/refs/head/[本地分支]
  • .git/refs/remotes/[正在跟踪的分支]

合并分支时:请注意--no-ff参数,表示禁用Fast forward,Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息)
git merge --no-ff -m "merge with no-ff" dev 这里是双引号

2.1 Bug分支管理流程

  1. 保存工作现场:
    git stash
  2. 确认哪个分支上有bug,如:master,马上创建临时分支:
    git checkout master // 切换到master分支
    git checkout -b issue-101 // 创建解决bug分支 issue-101
  3. 修复bug,切换到主分支,完成合并,并删除 issue-101分支
    git checkout master
    git merge --no-ff -m 'merged bug fix 101' issue-101 // 合并
    git branch -d issue-01 // 删除bug分支
    git checkout dev // 干活去
    git stash pop

2.2 Feature 新功能分支

类似于bugs分支管理流程

  1. 创建新的分支,并着手新功能开发
    git checkout -b feature-vulcan
    2.切换到dev,准备合并

3. git tag 命令

  1. 打TAG:
    git tag -a 标签名称 -m "标签注释"
  2. push标签
    git push origin 标签名称

4. git fetch 命令

  1. git fetch一般流程
    • git fetch 只会将本地库所关联的远程库的commit id更新至最新
      比如,取回origin主机的master分支。
    • git fetch origin master
      拉取远程 master 分支的更新,注意不会合并,只是更新.git/remotes/下相关的文件;
    • git fetch origin
      拉取远程 origin下的所有分支的更新,主要与上面的命令的区别fetch origin master
    • git diff master origin/master
      本地分支master和远程分支master的差异
    • .cat .git/FETCH_HEAD
      可以看到其状态,若都是 not-for-merge 则不会有接下来的 merge 动作
    • git merge origin/dev
      本地当前的分支与远程远程dev进行合并;
      完整写法:(git merge origin/dev dev) 远程分支 origin/dev merge 到本地 dev 分支;
  1. 将本地修改推送到远程分支
    • git push origin dev
      将本地的dev分支推送到origin主机的dev分支。如果dev不存在,则会被新建;

      如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支;
      git push origin :master 等同于 git push origin --delete master

    • git push origin dev:dev_by
      远程分支名称跟本地不一样的处理,dev_by 为远程分支名

5. git fork 后的操作 (github,gitlab)

fork 就是将别人仓库的fork到自己的仓库中,如果需要与上游仓库进行同步,则需要在本地建立2个remote:1个自己库的(origin 自己的主机),一个上游库的(upstream主机);

一般操作流程与相关命令

  1. git remote -v
    查看关联的远程仓库;verbose
  2. git remote add upstream http://git.xxx.xxx/xxx.git
    将本地分支关联到上游远程 upstream,为别名,跟origin类似
    这样通过 git remote -v 可查看所有的远程分支
  3. git fetch upstream dev
    fetch upstream的dev分支
  4. git fetch upstream
    fetch upstream 上的所有分支
  5. git merge upstream/dev
    merge upstream/dev 到本地当前分支
    完整写法如:(git merge upstream/dev dev) // merge 到本地 dev 分支
  6. git push origin dev:dev
    将当前dev分支内容push到origin下的dev分支
  7. git remote set-url origin git@git.xxx.xx.git
    用来别名来修改对应的远程git地址
  8. 全部操作完毕后, 在网站上使用 new request merge 向上游分支发起pull request 请求;

6.Rebase操作

  1. git pull --rebase

注意:一旦分支中的提交对象发布到公共仓库,就千万不要对该分支进行衍合操作
https://www.git-tower.com/learn/git/ebook/cn/command-line/advanced-topics/rebase

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

推荐阅读更多精彩内容

  • 应该给乡下的外婆带什么礼物?修改这样子的,本人小硕一枚,不幸被国家奖学金砸中,于是个人资产顿时由0增长至20000...
    plantAtree_dAp阅读 286评论 0 0
  • 深院绿荫娇花红,夜雨未止出芙蓉,长台孤影叹良辰,低空情鸾苦寻凤。 有道是,空心无依,愁千褶。百寻,千寻,亦无他!
    古月弧阅读 153评论 0 1
  • (NO.050) 游戏这个词在我脑海里形成,是从小学时回家的路上某个隐蔽的小巷里摆满的游戏机里产生的。游戏机室总是...
    皇后驾到阅读 145评论 0 0
  • 胸怀大志,要做大事,这几乎是每个人的愿望和目标,但是最后真正做成事的却是寥寥无几,今天看了一篇文章很受启发,来一次...
    龙猫不是猫吧阅读 649评论 2 1
  • 早安,致自己:听说爱情有四个阶段,熬过去就会永远在一起。 有位心理学家曾写道, 一个成熟称得上真爱的恋情必须经过四...
    杜盈贤阅读 489评论 6 5