github项目的开发创建仓库、分支管理、分支策略、标签管理

举报
橙子园 发表于 2022/05/26 00:51:41 2022/05/26
【摘要】 一、创建仓库          如果先有远程库,从远程库克隆 (只会将master克隆下来):git clone  远程库地址           如果在本地建仓库并关联到远程仓库可以参考上一篇:https://b...

一、创建仓库

         如果先有远程库,从远程库克隆 (只会将master克隆下来):git clone  远程库地址 

         如果在本地建仓库并关联到远程仓库可以参考上一篇:https://blog.csdn.net/Chenftli/article/details/81141010

二、分支管理


        作用:假设你准备开发一个新功能,但需要两周才能完成,第一周写了60%,如果提交,由于代码还没写完,不完整的代码库会导致别人不能干活,如果等代码全部写完在一次提交,又会存在丢失每天进度的风险。有了分支,可以避免上述问题,创建一个属于自己的分支,别人看不到,还继续在原来的分支上正常工作,而我们在自己的分支上干活,想提交就提交,直到开发完毕后,在一次性合并到原来的分支上,这样,即安全又不影响别人工作。
        特点:Git分支是与众不同的,无论创建、切换、和删除分支,Git在非常短的时间内就能完成,无论版本库是1个文件还是1万个文件。

master主分支:在版本回退中,每次提交,Git都把它们串成一条时间线,在git里,这个分支叫主分支,即master分支,HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。每次提交,master分支都会向前移动一步,这样,随着不断提交,master分支的线也越来越长。

常见的管理操作:
创建与合并分支(要切换到仓库目录下):git branch 分支名
切换分支:git checkout 分支名
创建与切换同时进行:git checkout -b 分支名
查看当前分支:git branch (会列出所有分支,当前分支的面会有一个*号)
在分支上修改的内容合并到master分支,首先切换到master分支 :git merge 分支名 
删除分支:git branch -d 分支名
删除远程分支:git push origin :分支名
         git push origin --delete 分支名

查看分支合并图:git log --graph
(注意):如果想要远程库的其他分支,则需要将首先在本地建立一个同名分支然后把它拉取下来:git pull origin 分支名
 

第一次推送远程库的同名分支时,会有如下提示:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
warning: push.default 尚未设置,它的默认值在 Git 2.0 已从 'matching'变更为 'simple'。若要不再显示本信息并保持传统习惯,进行如下设置:

  git config --global push.default matching

若要不再显示本信息并从现在开始采用新的使用习惯,设置:

  git config --global push.default simple

当 push.default 设置为 'matching' 后,git 将推送和远程同名的所有
本地分支。

从 Git 2.0 开始,Git 默认采用更为保守的 'simple' 模式,只推送当前
分支到远程关联的同名分支,即 'git push' 推送当前分支。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

1.simple配置时要设置推送当前分支到远程关联的同名分支:git push --set-upstream origin lihong
以后推送直接用git push origin
2.matching配置时将分支推送到远程(在分支中):git push origin

 

三、分支策略:

        master分支应该是非常稳定的,依旧是仅用来发布最新版本,平时不能再上面干活。干活都在dev分支上,也就是说dev分支是不稳定的,到某个时候,比如1.0版本时,再把dev分支合并到master上,在master分支发布1.0版本。你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时往dev分支上合并就行了。


多人协作:
推送分支:git push origin master
                git  push origin dev

抓取分支:从远程库clone时,默认只能看到master
               想在dev分支上开发,就必须创建origin的dev分支到本地
                git checkout -b dev origin/dev

工作模式:

1.可以试图使用git push origin branch-name 推送自己的修改
2.如果推送失败,则因为远程分支比你的本地更新需要先用git pull试图合并
3.如果合并有冲突,则解决冲突,并在本地提交
4.如果有冲突或者解决冲突后,再用git push origin branch-name推送就能成功。
5.如果git pull提示“no tracking infromation”,则说明本地分支和远程分支的链接没有创建,用命令git branch --set--upstream branch-name origin/branch-name

四、标签管理:  


         意义:在发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版,将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来,所以,标签也是版本的一个快照。

打标签:git tag 标签名  
查看所有标签:git tag
指定commit id打标签:git tag 标签名 commitID
指定标签信息:git tag -a 标签名 -m  "标签信息"
切换到指定标签: git checkout 标签名 
查看说明文字:git show 标签名
删除标签: git tag -d 标签名
推送标签到远程:git push origin 标签名
一次性推送全部尚未推送到远程的本地标签: git push origin --tags
删除已经推送到远程的标签:
先本地删除:git tag -d 标签名
再从远程删除:git push origin crefs/tags/标签名
 

为上一个博客补充一点:

创建忽略目录(一般会隐藏):touch .gitignore 如果要忽略上传的文件,将文件名写在这个文件中。这个被写入的文件不会提交到远程。   
将该文件夹下所有文件添加到缓存区中:git  add .       
将缓存区中所有文件提交到版本库:git commit . -m "注释信息"

文章来源: blog.csdn.net,作者:橙子园,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/Chenftli/article/details/81259698

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。