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

[经验分享] Git Step by Step – (7) Git远程仓库(续)

[复制链接]
发表于 2018-1-15 12:23:06 | 显示全部楼层 |阅读模式
  上一篇文章介绍了Git远程仓库的一些使用,但是还是有些东西需要补充一下,所以有了这个续篇。

.gitignore
  前一篇中,我们介绍了Git的patch功能,当我们生成patch之后,"git status"就会显示patch文件是"Untracked files"。当然,我们也没有必要去跟踪这个patch文件。
  同样,项目中可能会经常生成一些Git系统不需要追踪(track)的文件,在编译生成过程中 产生的文件或是编程器生成的临时备份文件。我们可以在使用"git add"是避免添加这些文件到暂存区中,但是每次都这么做会比较麻烦。
  所以,为了满足上面的需求,Git系统中有一个忽略特定文件的功能。我们可以在工作目录中添加一个叫".gitignore"的文件,来告诉Git系统要忽略哪些文件。

  可以看到,当我们使用添加过".gitignore"文件后,文件中的过滤规则就生效了。
  注意:


  • 在windows环境中不支持文件名为".gitignore",所以可以把文件命名为".gitignore."
  • ".gitignore"文件只会对当前目录以及所有当前目录的子目录生效;也就是说如果我们把".gitignore"文件移到"advance"文件夹中,那么过滤规则就是会对"advance"及其子目录生效了
  • 建议把".gitignore"文件提交到仓库里,这样其他的开发人员也可以共享这套过滤规则
过滤语法
  下面介绍一下常用的过滤语法:


  • 斜杠"/"开头表示目录
  • 星号"*"通配多个字符
  • 问号"?"通配单个字符
  • 方括号"[]"包含单个字符的匹配列表
  • 叹号"!"表示不忽略匹配到的文件或目录
  下面举一些简单的例子:


  • foo/*:忽略目录 foo下的全部内容
  • *.[oa]:忽略所有.o和.a文件
  • !calc.o:不能忽略calc.o文件
exclude文件
  在Git仓库中有一个".git/info/exclude"文件,当我们指向对特定的仓库使用特定的过滤规则时,我们可以把过滤语句写在exclude文件中。

细看远程仓库命令
  前面一篇文章简单的介绍了push、pull命令的使用,这里将进一步展开介绍。
  首先,我们看看"git branch"和"git remote"命令,它们可以给我们提供很多有用的信息。



  • git branch



  • git remote


git push
  push命令用来将本地分支的更新推送的远程仓库,该命令的格式如下:
  

git push <远程主机名> <本地分支名>:<远程分支名>  




  • 通过"git push"更新、创建远程分支



  • 通过"git push"删除远程分支



  • 省略分支信息的"git push origin"  通过这种方式push的时候,报出了一个警告,提示"push.default"没有设置。
      在Git中push有两种设置:



  • simple方式:只是推送当前分支的更新到对应的远程分支;在Git 2.0以后就默认使用这种方式
  • matching方式:会推送所有有对应的远程分支的本地分支

  根据Git的提示,我们可以通过"git config --global push.default"来设置push方式。


git pull
  pull命令的作用是取回远程某个分支的更新,然后合并到指定的本地分支,pull命令格式如下:
  

git pull <远程主机名> <远程分支名>:<本地分支名>  




  • git pull origin>  取回origin主机release-1.0分支的更新,与本地的release-1.0分支合并。
      一般来说,pull命令都是在关联的本地分支和远程分支之间进行;当然,你可以使用不关联的本地分支和远程分支进行pull操作,但是不建议这么做。
      如果真的需要别的远程分支上的更新,建议使用"cherry-pick"把这个更新拿到关联的远程分支上,然后在关联分支上进行pull操作。


  • 省略本地分支名:git pull origin>  表示取回origin/next远程分支的更新,然后合并到当前分支


  • 如果当前分支存在上游(关联)分支,可以直接使用git pull origin  表示本地的当前分支自动与关联的origin主机分支进行合并

  "git pull"操作实际上等价于,先执行"git fetch"获得远程更新,然后"git merge"与本地分支进行合并。
  当然,pull命令也支持使用rebase模式进行合并:
  

git pull --rebase <远程主机名> <远程分支名>:<本地分支名>  

  在这种情况下,"git pull"就等价于"git fetch"加上"git rebase"。
  建议使用"git fetch"加上"git rebase"的方式来取代"git pull"获取远程更新,具体原因后面再介绍。

git fetch
  fetch命令比较简单,作用就是将远程的更新取回到本地。



  • git fetch origin  该命令表示将远程origin主机的所有分支上的更新取回本地


  • git fetch origin master  该命令只取回远程origin主机上master分支上的更新

总结
  通过这些介绍,相信大家一定会更加熟悉远程仓库操作命令,使得在Git环境中工作的更加顺利。

运维网声明 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-435314-1-1.html 上篇帖子: Git删除文件操作 下篇帖子: 聊下git pull --rebase
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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