git使用总结

来源:互联网 发布:js获取时间控件的值 编辑:程序博客网 时间:2024/06/14 04:03

一、使用git管理代码一般流程总结如下:

目前主流的代码版本控制一般采用git + gerrit的方式,git用于cvs,即代码版本控制,而grerrit则用于code review,只有通过了review,代码才能入库服务器。具体流程如下:

git stash -> git pull -> git stash pop ->auto  merge -> git add -> git commit ->git  push HEAD-> code review -> git fetch


二、常用命令:

1.初始化操作

(1)git init :将某个项目添加入git的cvs,只有初始化之后才能进行后续的cvs操作。否则就会出现以下的错误:

fatal: Not a git repository (or any of the parent directories): .git

(2)git clone:将远程服务器的项目克隆到本地,简单的说就是把远程服务器的对应项目工程下载到本地,此时可以使用git branch -a命令查看远程分支。注意:克隆到本地的项目是不会主动与服务器进行同步的,可以使用git fetch命令进行同步。

2.分支相关

(1)git branch:查看本地分支,依据个人兴趣,建议基于某个稳定的远程分支新建一个本地分支进行项目开发,此时使用:git checkout -b master remotes/origin/master

建议自己新建的本地分支名最好要与远程分支名向对应,否则当有许多远程分支时,就比较乱,提交代码时就容易出错。

(2)git merge:用于合并分支,一般经过数次往开发分支提交变更之后往往代表完成了某个版本的迭代,此时经过测试验证通过后,需要将这次版本迭代往稳定分支合入,此时通常采用git merge。注意,此时这种合并是将开发分支上与稳定分支的差异合入到稳定分支上,这是导致merge冲突的原因,可以通过定期同步稳定分支上的代码到开发分支上来避免。说到分支管理需要提到,稳定分支是可以随时出版本来对外发布的产品的,发布的风险在于开发分支的合入,虽然经过了测试的验证,但总是避免不了测试遗漏了某些测试场景或者测试用例不完整。这种情况的个人的解决方案是:定期基于稳定分支拉出两条分支,一条用于产品新需求的迭代,另一条是对稳定分支的bug修复,视具体情况到底是来合入开发或bug修复分支。


3.git stash:用于将代码的修改保存,此时工程会恢复到上一个提交的状态,git stash pop会把项目工程恢复到最后执行git stash时保存起来的修改状态。应用场景:比如你目前的代码并不是对应远程分支上最新的代码,你又不想commit(因为commit之前又要add 写log等流程),此时可先使用stash将你的修改保存起来,然后执行git pull更新代码,最后git stash pop非常便捷。注意:git stash pop时可能会出现冲突,解决流程与git merge的流程是一样的。

4.代码回滚

(1)git reset --soft commit id:用于回退到由commit id代表的某次提交,而基于这个commit id之后的提交变更都会保留下来。

(2)git reset --hard commit id:用于回退到由commit id代表的某次提交,而基于这个commit id之后的提交变更都不会保留下来。 


0 0
原创粉丝点击