返回

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

发布时间:2022-10-29 11:09:28 301
# git# 信息

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

  作用:假设你准备开发一个新功能,但需要两周才能完成,第一周写了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 "注释信息"

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
vscode 创建项目提交到github 2022-10-29 10:39:43