git分支管理及常用配置

  • git ssh配置
  1. 打开git bash,通过以下命令检查是否配置用户名和邮箱,如果出现git bash闪退,可以用管理员身份运行打开,或者重装git
    git config --global --list

  2. 如果已配置想删除
    git config --global --unset user.name
    git config --global --unset user.email

    或者可以编辑配置文件

    git config --global --edit
    编辑完成后保存退出  :wq

  3. 如果未配置
    git config --global  user.name "这里换上你的用户名"
    git config --global user.email "这里换上你的邮箱"

  4. 生成公私密钥对id_rsa.pub和id_rsa
    ssh-keygen -t rsa -C "这里换上你的邮箱"

    执行完命令会有几次确认,确认密钥保存路径及是否覆盖密钥等,直接回车即可,也可以根据实际情况进行相应处理

  5. 查看公钥
    cat ~/.ssh/id_rsa.pub
    

  6. 把上一步查看到的内容全部复制,添加到远程仓库的ssh

  • 不小心将代码写错分支提交了,想把提交的代码从a分支移动到b分支
  1. 在a分支查看手误提交的commitId复制下来:
    git log

  2. 将对应的提交移到b分支:
    git cherry-pick commitId

  • 在dev分支上,需求开发了一半,这时来了一个紧急线上bug,需要先切换分支,这时候如果直接在当前分支git checkout –b fix-bug是错误的,这样会把dev分支未开发完的代码一起复制到bug分支。正确的做法是:
  1. 暂存dev分支代码:
    git stash

  2. 切换到master分支:
    git checkout master

  3. 拉取线上最新代码:
    git pull

  4. 新建并切换本地分支,同时与远程分支关联:
    git checkout –b fix-bug origin/fix-bug

  5. bug修改完之后切回原来的dev分支:
    git checkout dev

  6. 从暂存区拿出原来的修改(如果stash了多次 后面可以加序号,pop出指定暂存区内容):
    git stash pop

  • 这时候bug修复完之后需要提交代码发布上线,不要直接提pull request,有可能在你修bug时其他人有更新线上代码,这时候需要先更新本地代码
  1. 从远程与线上代码一致的分支development分支更新本地代码。
    git pull origin development --rebase
     注意:git pull = git fetch + git merge ,git pull --rebase = git fetch + git rebase
    这里加上rebase不只是为了避免在合并时产生commit闭环,线条清晰,主要原因是如果不使用rebase,可能会产生bug。因为git服务器是非交互式运行,提pull request时它不会提醒你解决冲突,而是把冲突代码带上冲突标记一并合并到远程分支上,产生bug。另外一个问题就是可能会产生增量代码修复bug,例如: a和b在不同分支修改同一个bug,a在第三行进行增加一行加法计算的代码,合并到远程分支,b在第五行增加一行加法计算的代码,不加rebase,pull了远程代码,由于是在不同行改的代码,git也不会报冲突就合并了,从而导致bug。
  2. 如果rebase之后,在本地的fix-bug分支又有了新的修改,提交之后会push不上去,因为fix-bug分支的HEAD已经改变,它不再指向fix-bug的最后一个commitId,而是指向development合并后的commitId,这时候需要移动HEAD指针指向origin/fix-bug新的、更新后的位置,执行:
    git push --delete origin fix-bug

  3. 提pull request,将本地分支fix-bug与远程分支development合并
  4. 发布后远程的development分支与master分支会自动合并
  • 当本地开发分支提交比较多可以用squash将所有commit压缩成一个commit,为了保留本地开发分支的提交记录,最好切换到development分支,进行合并压缩
  1. 同步远程分支
    git pull

  2. 合并压缩commit
    git merge fix-bug –squash

  3. 从development分支切换到一个新分支,这时候新分支fix-bug2已经是合并过最新代码的分支了,这时就可以提pull request了
    git checkout –b fix-bug2

  1. 查看现有远程仓库:
    git remote -v

  2. 在远程新建一个仓库,拿到仓库地址:https://abc/xyz.git
  3. 本地添加该远程仓库:
    git remote add projectId(自定义仓库id) https://abc/xyz.git

  4. 将本地分支master推送到相关目标远程仓库:
    git push projectId prjectId1 projectId2  master

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值