设为首页 收藏本站
查看: 1177|回复: 0

[经验分享] Git学习(二)

[复制链接]

尚未签到

发表于 2018-9-17 09:45:01 | 显示全部楼层 |阅读模式
  远程仓库
  Git是分布式版本控制系统,同一个Git仓库可以分布到不同的机器上。
  最早只有一台机器上有一个原始版本,此后,别的机器可以“克隆”这个原始版本库,而且每台机器病没有主次之分,其实一台机器只要不在同一个目录下,也是可以克隆多个版本库的,但没什么意义。
  GitHub
  充当服务器,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库,也从服务器仓库拉取别人的提交。
  你的本地仓库Git和GitHub仓库之间的传输是通过SSH加密的
  添加远程库
  现在已经在本地创建了一个Git仓库,又想在GitHub上创建一个Git仓库,并且让这两个仓库进行远程同步。
  1、登录GitHub,创建新的仓库“New repository”
  2、在Repository name填入仓库名(假设为learngit),其他保持默认,就成功创建了一个新的Git仓库
  3、现在可以把一个已有本地仓库与这个仓库关联,然后把本地仓库的内容推送到GitHub上
  git remote add origin git@github.com:chehlling/learngit.git    其中chehlling为我的GitHub账户名
  4、把本地库的所有内容推送到远程库上
  git push -u origin master把当前分支master推送到远程加-u选项,是因为第一次推送master分支时远程库是空的,Git不但会把本地的master分支推送到远程的master分支,还会把本地的master分支和远程关联起来
  从现在起,就可通过git push origin master把本地分支的最新修改推送至GitHub
  从远程库克隆
  git clone git@github.com:chehlling/chatd
  要克隆一个仓库,必须知道仓库地址
  当从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且远程仓库的默认名称是origin
  git remote
  git remote -v
  分支管理
  查看分支:git branch
  创建分支:git branch name
  切换分支:git checkout name
  创建+切换分支:git checkout - name
  合并某分支到当前分支:git merge name
  删除分支:git branch -d name
  查看分支合并图:git log --graph
  在每次提交一个版本后,master分支都会向前移动一部,Git都把这些版本串成一条时间线这条时间线就是一个分支。
  当只有一条时间线时,这个分支叫主分支,即master分支。
  HEAD指向master,master指向提交,所以HEAD指向的就是当前分支。
  当创建一个新的分支时,Git新建了一个指针,指向和master相同的提交
DSC0000.png

  分支冲突
  可直接查看文件内容来查看冲突
  可手动修改文件再提交
  分支管理
  通常合并分支时,如果可能,Git会用Fast forward模式,这种模式下,删除分支后,会丢掉分支信息,即合并后看不出来曾经做过合并。
  加--no-ff参数可以即禁止使用Fast forward模式,合并后的历史有分支,能看出来曾经做过合并。
  在实际开发中,master分支应该是非常稳定的,仅用来发布新版本,平时不在上面干活;
  dev分支是不稳定的,到某个时候,再把dev分支合并到master上;
  每个人在dev的分支上干活,时不时往dev分支上合并就可以了。
DSC0001.png

  Bug分支
  git stash 可以把当前工作现场“储存”起来,等以后恢复工作现场后继续工作;
  执行完git stash后可用git status查看当前工作区应该是干净的
  git stash list 查看保存起来的工作现场在哪里
  恢复的办法有两种:一是,先执行git stash apply恢复,再执行git stash drop来删除stash内容;
  二是,执行git stash pop,恢复的同事把stash内容也删了。
  可以多次stash,恢复的时候,用git stash list查看,然后恢复制定的stash,执行命令git stash apply stash@{0}
  Feature分支
  添加新功能时
  一、提交、合并、删除分支
  二、提交、取消这个新功能git branch -D name强行删除
  推送分支
  git push origin master
  git push origin dev
  标签管理
  tag
  git tag 就可以打一个新标签,如git tag v1.0
  用git tag命令查看所有标签
  标签默认是打在最近一次的提交上,如果之前忘了打标签,可先用git log --pretty-oneline --abbrev-commit查看历史版本,找到对应的commit-id号,执行git tag 标签 commit-id号即可。
  git show 可以查看对应标签的详细信息
  git tag -a  -m "information..."可以指定标签信息
  git tag -s  -m "information..."可以用PGP签名标签
  推送标签:git push origin
  推送全部未推送过的标签:git push origin --tags
  删除本地标签:git tag -d
  删除远程标签:git push origin :refs/tags/
  《完》


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-588118-1-1.html 上篇帖子: Git/SVN 版本管理工具的对比 下篇帖子: 聊下 git rebase -i
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表