Jenkins奇技淫巧Git奇技淫巧

Git学习之旅 - Branching and Merging

2019-05-10  本文已影响0人  拔萝卜占坑

前言

其实git里面的很多命令参数都是重复的,虽然功能不同,但大致意思可以举一反三,所以文章只讲解常用的的命令。

branch

罗列,创建或删除分支
参考https://git-scm.com/docs/git-branch

checkout

切换分支或恢复工作树文件
这个命令,平时使用也比较简单的功能,更多用法,参考 https://git-scm.com/docs/git-checkout

merge

  1. git merge --abort
    执行merge进行合并时,突然想放弃这次合并,可以使用,git merge --abort
  2. git merge --continue
    当解决合并冲突后,你想要继续下一步来commit合并后的文件,可以执行这个命令。其它用法请参考 https://git-scm.com/docs/git-merge

log

git log -p master ..origin/master

stash

储藏区,将未提交的文件(不包括被忽略的文件和不在工作树里的文件),暂时储藏起来,以便我们进行其它操作。

如果存在冲突,将导致移除失败;在这种情况下,它不会从隐藏列表中删除。您需要手动解决冲突并随后手动调用git stash drop

tag

创建(git tag ),列出(git tag -l),删除(git tag -d <tagname>…​)或验证(git tag -v)使用GPG签名的标记对象

签署标签:如果你有自己的私钥,还可以用 GPG 来签署标签,只需要把之前的 -a 改为 -s (译注: 取 signed 的首字母)即可:

轻量级标签:轻量级标签实际上就是一个保存着对应提交对象的校验和信息的文件。要创建这样的标签,一个 -a,-s或 -m 选项都不用,直接给出标签名字即可:

$ git tag v1.4-lw
$ git tag v0.1 v1.3 v1.4 v1.4-lw v1.5

验证标签:

可以使用 git tag -v [tag-name] (译注:取 verify 的首字母)的方式验证已经签署的标签。此命令会调用 GPG 来验证签名,所以你需要有签署者的公钥,存放在 keyring 中,才能验证:

后期加注标签:
你甚至可以在后期对早先的某次提交加注标签。比如在下面展示的提交历史中:

$ git log --pretty=oneline

我们忘了在提交 “updated rakefile” 后为此项目打上版本号 v1.2,没关系,现在也能做。只要在打标签的时候跟上对应提交对象的校验和(或前几位字符)即可:

$ git tag -a v1.2 9fceb02

分享标签

默认情况下,git push 并不会把标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库。其命令格式如同推送分支,运行 git push origin [tagname] 即可:

如果要一次推送所有本地新增的标签上去,可以使用 --tags 选项:

$ git push origin --tags

worktree

作用就是在同一个仓库下,新建工作树,是工作树直接的操作互不影响。具体用法,
参考:https://git-scm.com/docs/git-worktree

上一篇 下一篇

猜你喜欢

热点阅读