git常见操作以及应用场景处理
1.已有项目,构建本地和远程的git仓库,创建一个初始化的源码库管理环境
a.初始化创建远程仓库
git init --bare \\100.0.6.141\sysvss\gitRepositories\TestGit.git
b.初始化本地仓库,切换到需要初始化的本地仓库目录执行命令
git init
或者是通过Intellij的命令:
VCS-->Import into Version Control-->Create Git Repository 选择你的本地项目
c.将本地目录和远程目录关联起来,即增加Remote的仓库的url(需要为远程git repository起个名字,默认使用origin作为名字)
git remote add origin \\\\100.0.6.141\sysvss\gitRepositories\TestGit.git
//删除remote(如果remote的路径发生更改,可以删除之后重新建立remote)
git remote rm origin
d.执行本地的提交
git add . [或者VCS-->Git-->Add]
git commit -m “init commit” [或者VCS-->Git-->Commit File]
e.将本地代码提交到远端仓库
git push -u origin master [或者VCS-->Git-->Push]
2.分支管理策略
a.Git主分支的名字,默认叫做Master。它是自动建立的,版本库初始化以后,默认就是在主分支上。
b.所有的日常开发在Develop分支上进行,Develop分支可以用来生成代码的最新隔夜版本(nightly)
c.另外可以创建一些临时性分支,主要可以分为两类:功能性分支(feature-*)和Bug修复性分支(bugfix-*)。它们属于临时性需要,使用完以后,应该删除,使得代码库的常设分支始终只有Master和Develop
其中功能性分支是从Develop分支上面分出来的,开发完成合并到Develop分支,然后删除
Bug修复性分支是从Master分支上分出来,开发完成之后合并到Master以及Develop分支,然后删除
3.分支常见操作
a.列出所有分支,以及所处的当前分支.如果是当前分支,分支前会有*号标示
git branch
b.在当前所在的分支创建分支
git branch bugfix_2210
c.切换分支
git checkout master [或者VCS-->Git-->Branches,然后可以在本地分支之间进行切换,或者从远程分支获取最新信息]
d.删除分支
git branch -D feature-1.0
e.合并分支
git merge --no-ff -m "merged bug fix 101" issue-101
默认情况下,Git执行"快进式合并"(fast-farward merge),会直接将Master分支指向Develop分支,
使用--no-ff参数后,会执行正常合并,并在Master分支上生成一个新节点,为了保证版本演进的清晰推荐都加上--no-ff参数
4.当前正在开发分支(Develop)上进行开发,这时候来了一个紧急的Bug修改任务,而有不想提交Develop上正在进行的开发,那如何处理?
a.执行git stash,将当期工作现场“储藏”起来,等以后恢复现场后继续工作
b.切换到Master分支,git checkout master
c.创建新的分支,git checkout -b issue-101[或者git branch issue-101]
d.切换到新的分支 git checkout issue-101
e.如果修改完成之后,add、commit到本地仓库中
f.合并分支到Master
f1:切换到Master分支,git checkout master
f2:然后合并分支,git merge --no-ff -m "merged bug fix 101" issue-101
f3:切换到Develop分支,git checkout Develop
f4:合并分支到Develop git merge --no-ff -m "merged bug fix 101" issue-101
f5:删除分支 git branch -D issue-101