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

[经验分享] git命令使用总结

[复制链接]

尚未签到

发表于 2018-9-18 07:05:53 | 显示全部楼层 |阅读模式
  一.分支
  $ git branch//查看本地分支
  * master
  $ git branch -r//查看远程分支
  origin/HEAD -> origin/removal
  origin/master
  origin/removal
  $ git checkout -b removal  origin/removal//新建本地分支并切换到远程分支上
  $git branch -d//删除分支
  二.克隆
  $ git clone~/workspace/study/tmp.git //克隆本地仓库
  三. 补丁

  $ git format-patch -1 de4f9255d//生成补丁,参数分别代表生成几个补丁和commit>  $ git apply --check//检查patch能否被打上
  $ git apply001.patch
  $ git am 001.patch //apply &mail
  四.Rebase
  1. 创建仓库:$ git --bare inittmp.git
  $ ls tmp.git
  branches config description gitk.cache HEAD hooks info objects refs
  2.克隆这个仓库:clone-1$git clone ~/workspace/study/tmp.git
  clone-1$ ls
  tmp
  3. 再克隆一个:clone-2$ git clone ~/workspace/study/tmp.git
  clone-2$ ls
  tmp
  4.修改clone-1中的文件MAINTAINERS,并commit,再pushorigin master提交到远程master分支
  5. 修改clone-2中的文件MAINTAINERS,并commit,此时push会失败,需进行rebase操作后再push,如下:
  $ git fetchorigin
  $ git rebaseorigin/master
  $ git pushorigin  //upstream branch可不填,默认是和本地分支对应的远程分支
  $ gitk //图形化查看git log
  图1-1
  看上图1-1,通过对比红线以上和以下的历史信息可充分看出rebase和gitpull(merge)的区别, clone……的信息,是clone-1分支上的提交,clone2……是clone-2上的提交,无论哪个分支先push进originmaster,后面的提交者,先rebaseorigin/master,然后再push,就形成了红线上方的提交历史,很清晰,只基于一条主线。
  6. 注意事项:
  修改统一个文件,如果修改的是统一个地方,rebase会conflict,即便你觉得没有修改同一行,但是修改的上下文有重叠也会被认为冲突。
  五.git log / gitk
  $ git log --author="somebody" //查看作者名为somebody的提交历史
  $ git log / //查看某个文件/目录的提交历史
  六.git diff
  $ gitdiff           (1)
  $ git diff --cached  (2)
  $ git diffHEAD      (3)
  1. Changes in the working tree not yet staged for the nextcommit.
  显示当前目录下修改的但还没有缓存(git add添加到Index中)的文件.
  2. Changes between the index and your last commit; what you wouldbe committing if you run "git commit" without "-a"option.
  当前Index中的和上一次commit之间的修改; 也就是你下一次commit将会提交的内容,假设你不在gitcommit加-a选项(-a表示自动commit所有修改或者删除的文件)
  3. Changes inthe working tree since your last commit; what you would becommitting if you run "git commit -a"
  从上一次commit开始,当前目录下的修改(不管修改的文件有没有被缓存,都会列出来)
  Comparing with arbitrarycommits——比较任意的commit之间的修改
  $ git difftest           (1)
  $ git diff HEAD -- ./test (2)
  $ git diff HEAD^HEAD     (3)
  1. Instead of using the tip of the current branch, compare with thetip of "test" branch.
  不与当前branch进行比较,而是与test branch进行比较
  2. Instead of comparing with the tip of "test" branch, compare withthe tip of the current branch, but limit the comparison to the file"test".
  比较当前branch的上一个commit中的./test文件和当前目录下的./test文件的修改
  3. 比较上一个commit和上上一个commit之间的修改.
  Comparing branches——branch之间比较
  $ git diff topicmaster   (1)
  $ git diff topic..master  (2)
  $ git diff topic...master (3)
  1. Changes between the tips of the topic and the masterbranches.
  比较topic分支和master分支之间的不同
  2. Same as above.
  同上。
  3. Changes that occurred on the master branch since when the topicbranch was started off it.
  比较topic分支从master分出来之后,topic上有哪些修改
  更多git diff例子,参照git diff --help
  七. git rm --cache //只从index中删除,不删除本地文件
  八. git reset HEAD^回退单独的文件,如果已经提交commit,但是想在这个commit中去掉某个文件,可以单独回退这个文件
  九.回退后的文件,用git status 查看,显示为已经更改,没有add到index中,如果想撤销更改,可以:
  git checkout
  九. git rebase HEAD^ --onto v3.18-rc1
  将 HEAD^ rebase到 v3.18-rc1,HEAD^后面的commit会基于v3.18-rc1。


运维网声明 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-588886-1-1.html 上篇帖子: 步骤:用git提交patch,并发送邮件列表 下篇帖子: Git 忽略文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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