Git笔记3

这篇笔记是廖雪峰的git教程的一篇总结笔记

git分支的基本处理

  • 查看分支:git branch
  • 创建分支:git branch <name>
  • 切换分支:git checkout <name>
  • 创建并切换分支:git checkout -b <name>
  • 合并某分支到当前分支:git merge <name>
  • 删除分支:git branch -d <name>
  • c查看分支i合并图:git log --graph

分支的几个个人理解:
首先,master是一个单个的开发线,这个线本身就是一个主分支。我们开发新的功能时,可以创建一个dev分支,最简单的方法是在master指针之前创建一个新的开发结点,并使得dev指针指向该结点,最后使得HEAD指针指向dev指向的结点即可。

之后合并分支的时候,只需要使master指针指向HEAD的提交即可,最后删除dev分支就行了。确保master指向dev分支后,执行git checkout -d dev即可删除dev指针。

使用命令:

git log --graph --pretty=oneline --abbrev-commit

可以查看所有的分支以及合并的路线图。如果出现合并冲突,则必须人工解决。

git在合并分支的时候,会尽可能使用Fast-Forward方式,这个方式在合并的时候,会删除分支的信息。如果要保留分支的信息,那么需要使用git merge --no-ff的命令。

实际开发中,不应在master分支中进行直接开发,master分支用于版本发布。应该新建一个dev分支,当测试完毕后,再往master分支上提交。如果多人合作开发,那么每个人都要有自己的分支,然后往dev分支上合并,之后dev再往master上合并,如下图所示:

bug分支
软件开发时,每个bug都可以创建一个临时的bug分支进行管理,当修复bug后,可以合并分支,然后删除原来的bug分支。有一个特殊的场景:我们在dev上进行开发工作,预计该工作需要1周的时间完成;但是此时有一个bug需要在一天内修复,但是我们不想立刻提交未开发完的dev分支。此时可以使用git stash命令来保存工作现场,然后去修复bug。

为什么要使用git stash:该命令是保存暂存区的数据,执行完成该命令后,暂存区的内容被临时保存,此时git status可以看到暂存区没有任何内容。使用git stash后,我们重新创建bug分支,此时修复bug一般都会使用到暂存区,那么此时的暂存区就是为了单纯修复bug而使用的。修复完毕后,使用commit命令提交暂存区的数据到相应的分支即可。

bug修复完了,我们需要回复之前的开发内容,此时有两个可以选择的命令:

  • git stash apply命令恢复,但是stash的内容不会删除,需要再次使用git stash drop删除
  • git stash pop命令恢复暂存区,同时删除stash的内容

git stash可以使用多次,之后使用git stash list查看不同的stash,之后可以恢复制定的stash, 比如:git stash apply stash@{0}

feature分支
每当开发一个新的feature时,最好新建一个分支如果要强行删除一个没有合并的分支,需要使用命令:git branch -D <name>

多人合作开发
多人合作开发时,从远程克隆仓库,此时本地master分支和远程的master自动关联,而且远程仓库的默认名称是origin。使用命令git remote查看远程仓库的基本信息,使用git remote -v查看远程仓库的详细信息。

推送不同的分支:

  • 推送主分支:git push origin master
  • 推送dev分支:git push origin dev
  • bug分支一般不需要推送
  • feature分支如果不需要合作开发,则没必要推送

抓取分支操作,一般来说,git clone命令只是克隆了master分支,如果需要克隆dev分支,则需要执行:

git checkout -b dev origin/dev

这条命令本地新建dev分支,之后再同步远程的dev分支。

如果远程的仓库在我们提交的时候,已经进行了更新,那么需要同步后再提交。分为2个情况:

  • master分支,这个在git clone的时候,就已经自动关联了,只需要执行git pull抓取同步即可。
  • dev分支或者其它开发分支,先建立远程的关联,以dev分支为例:
    • 建立关联操作:git branch --set-upstream-to=origin/dev dev
    • 拉取最新仓库:git pull

Rebase操作
这一节的笔记整理自这篇博客,只是做一个总结。
git rebase mastermaster分支的历史提交整理成线性的。一般来说,如果我们不是维护者,但是想要对仓库做一点贡献,可以使用这个命令。注意,如果分支提交到了远程仓库,那么就不要对分支进行rebase操作,否则会把提交过程搞得非常混乱!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值