zoukankan      html  css  js  c++  java
  • Github

    Github使用过程中的一些总结(非专业)

    1. 部分名词解释

    a. Untracked,未被追踪的,指的是新建的但还没加入到暂存区的文件/文件夹(新建的但从来没有被git add 过的)

    b. not staged,未加入到暂存区的,指的是已经被追踪过,但是没有加入到暂存区(已经执行过git add/commit的,但是这次修改后还没有git add) 

    2. 场景,主分支为master,此时在dev分支开发一个新功能,突然需要master紧急修复一个bug。

    a. 在dev分支上,使用 git stash 保存当前工作现场。如果有创建的文件或者文件夹,需要先 git add file,如果不这么操作,使用 git stash,之后切换到master分支,也会看到新创建的文件/文件夹,这样导致bug的修改代码也提交不了。 如果 创建了新文件/文件夹,又不想使用git add file,可以使用 git stash -a,这个命令使用后,新创建的文件或者文件夹会暂时不可见。

    b. 切换到主分支, git switch master  (需要修复哪个分支,就从哪个分支创建临时分支,例子中是修复master分支)

    c. 创建临时bug修复分支,git checkout -b issue-1

    d. 修复bug,之后add和commit(此时处于临时分支issue-1上)

    f. 修复完成后,切换到master分支,并完成合并,最后删除issue-1分支。 切换: git switch master、合并: git merge --no-ff -m "xxx" issue-1、删除: git branch issue-1

    g. 因为dev分支是在master上修复bug之前创建的,因此该bug在dev上也存在,如何将修改同步到dev分支上?重复操作1次,再提交?当然也行,但是有更简单的办法:同样的bug,在dev上修复,只需要把修改issue-1这个提交所做的修改复制到dev分支(注意,只复制issue-1这个修改,而不是把整个master merge过来),为了方便操作,git专门提供了一个cherry-pick命令。 切换: git switch dev、同步bug: git cherry-pick commit-id -m 1。这里的commit-id是修复issue-1的那个id,此时需要在master分支上才能看到,至于-m参数,有些教程中不需要,我在操作过程中需要这个参数,-m后的数字表示修改来自于哪个分区,1表示来自于master,至于其他数字没尝试。

    h. 继续去完成dev未完成的工作,此时git status,发现工作区是干净的,刚才保存的工作现场去哪了?可使用git stash list 查看;

    恢复工作现场:只有单个现场--git stash apply、如果多个现场--git stash apply stash@{xxx};

    删除stash内容: 恢复后,git stash list的内容不会删除,使用git stash drop删除(可使用git stash pop,恢复的同时自动删除stash内容)

  • 相关阅读:
    开发者账号续期后,itunes停止付款了
    复杂sql分组查询 ( pivot)
    免费真机调试 -- Xcode7
    System.Security.Cryptography.CryptographicException: 指定了无效的提供程序类型
    phonegap创建的ios项目推送消息出现闪退现象
    这周的《财经郎眼
    <转>iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!
    ios线程和GCD和队列同步异步的关系
    <转>关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系
    为什么我们要做单元测试?(二)
  • 原文地址:https://www.cnblogs.com/lipx9527/p/13956253.html
Copyright © 2011-2022 走看看